本文整理汇总了PHP中IPAddress::getIP方法的典型用法代码示例。如果您正苦于以下问题:PHP IPAddress::getIP方法的具体用法?PHP IPAddress::getIP怎么用?PHP IPAddress::getIP使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPAddress
的用法示例。
在下文中一共展示了IPAddress::getIP方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: logm
/**
* Log an array of category/message pairs
*/
public static function logm($categoryMessagePairs)
{
$scribe = Z_CONFIG::$LOG_TO_SCRIBE;
$cli = Z_Core::isCommandLine();
// Scribe and CLI need additional info
if ($scribe || $cli) {
// Parse timestamp into date and milliseconds
$ts = microtime(true);
if (strpos($ts, '.') === false) {
$ts .= '.';
}
list($ts, $msec) = explode('.', $ts);
$date = new DateTime(date(DATE_RFC822, $ts));
$date->setTimezone(new DateTimeZone(Z_CONFIG::$LOG_TIMEZONE));
$date = $date->format('Y-m-d H:i:s') . '.' . str_pad($msec, 4, '0');
// Get remote IP address
if (!$cli) {
$ipAddress = IPAddress::getIP();
}
// Get server hostname
if ($scribe) {
$host = gethostname();
if (strpos($host, '.') !== false) {
$host = substr($host, 0, strpos($host, '.'));
}
}
}
$messages = array();
foreach ($categoryMessagePairs as $pair) {
// Scribe
if ($scribe) {
$messages[] = array('category' => $pair[0], 'message' => "{$date} [{$ipAddress}] [{$host}] " . $pair[1]);
} else {
if ($cli) {
$messages[] = array('category' => $pair[0], 'message' => $date . " " . $pair[1]);
} else {
$messages[] = array('category' => $pair[0], 'message' => $pair[1]);
}
}
}
if (Z_CONFIG::$LOG_TO_SCRIBE) {
self::logToScribe($messages);
} else {
self::logToErrorLog($messages);
}
}
示例2: _handleFileRequest
/**
* Handle S3 request
*
* Permission-checking provided by items()
*/
private function _handleFileRequest($item)
{
if (!$this->permissions->canAccess($this->objectLibraryID, 'files')) {
$this->e403();
}
$this->allowMethods(array('HEAD', 'GET', 'POST', 'PATCH'));
if (!$item->isAttachment()) {
$this->e400("Item is not an attachment");
}
// File info for client sync
//
// Use of HEAD method is deprecated after 2.0.8/2.1b1 due to
// compatibility problems with proxies and security software
if ($this->method == 'HEAD' || $this->method == 'GET' && $this->fileMode == 'info') {
$info = Zotero_S3::getLocalFileItemInfo($item);
if (!$info) {
$this->e404();
}
/*
header("Last-Modified: " . gmdate('r', $info['uploaded']));
header("Content-Type: " . $info['type']);
*/
header("Content-Length: " . $info['size']);
header("ETag: " . $info['hash']);
header("X-Zotero-Filename: " . $info['filename']);
header("X-Zotero-Modification-Time: " . $info['mtime']);
header("X-Zotero-Compressed: " . ($info['zip'] ? 'Yes' : 'No'));
header_remove("X-Powered-By");
} else {
if ($this->method == 'GET' || $this->method == 'POST' && $this->fileView) {
if ($this->fileView) {
$info = Zotero_S3::getLocalFileItemInfo($item);
if (!$info) {
$this->e404();
}
// For zip files, redirect to files domain
if ($info['zip']) {
$url = Zotero_Attachments::getTemporaryURL($item, !empty($_GET['int']));
if (!$url) {
$this->e500();
}
header("Location: {$url}");
exit;
}
}
// For single files, redirect to S3
$url = Zotero_S3::getDownloadURL($item, 60);
if (!$url) {
$this->e404();
}
Zotero_S3::logDownload($item, $this->userID, IPAddress::getIP());
header("Location: {$url}");
exit;
} else {
if ($this->method == 'POST' || $this->method == 'PATCH') {
if (!$item->isImportedAttachment()) {
$this->e400("Cannot upload file for linked file/URL attachment item");
}
$libraryID = $item->libraryID;
$type = Zotero_Libraries::getType($libraryID);
if ($type == 'group') {
$groupID = Zotero_Groups::getGroupIDFromLibraryID($libraryID);
$group = Zotero_Groups::get($groupID);
if (!$group->userCanEditFiles($this->userID)) {
$this->e403("You do not have file editing access");
}
} else {
$group = null;
}
// If not the client, require If-Match or If-None-Match
if (!$this->httpAuth) {
if (empty($_SERVER['HTTP_IF_MATCH']) && empty($_SERVER['HTTP_IF_NONE_MATCH'])) {
$this->e428("If-Match/If-None-Match header not provided");
}
if (!empty($_SERVER['HTTP_IF_MATCH'])) {
if (!preg_match('/^"?([a-f0-9]{32})"?$/', $_SERVER['HTTP_IF_MATCH'], $matches)) {
$this->e400("Invalid ETag in If-Match header");
}
if (!$item->attachmentStorageHash) {
$info = Zotero_S3::getLocalFileItemInfo($item);
$this->e412("ETag set but file does not exist");
}
if ($item->attachmentStorageHash != $matches[1]) {
$this->e412("ETag does not match current version of file");
}
} else {
if ($_SERVER['HTTP_IF_NONE_MATCH'] != "*") {
$this->e400("Invalid value for If-None-Match header");
}
if ($this->attachmentStorageHash) {
$this->e412("If-None-Match: * set but file exists");
}
}
}
//
//.........这里部分代码省略.........
示例3: login
public function login()
{
// TODO: Change to POST only
if (empty($_REQUEST['username'])) {
$this->error(403, 'NO_USER_NAME', "Username not provided");
} else {
if (empty($_REQUEST['password'])) {
$this->error(403, 'NO_PASSWORD', "Password not provided");
}
}
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$authData = array('username' => $username, 'password' => $password);
$userID = Zotero_Users::authenticate('password', $authData);
if (!$userID) {
StatsD::increment("sync.login.failure");
if (isset($_SERVER['HTTP_X_ZOTERO_VERSION']) && $_SERVER['HTTP_X_ZOTERO_VERSION'] == "2.0b6") {
die("Username/password not accepted");
}
$this->error(403, 'INVALID_LOGIN', "Username/password not accepted");
}
StatsD::increment("sync.login.success");
$sessionID = md5($userID . uniqid(rand(), true) . $password);
$ip = IPAddress::getIP();
$sql = "INSERT INTO sessions (sessionID, userID, ipAddress)\n\t\t\t\t\tVALUES (?,?,INET_ATON(?))";
Zotero_DB::query($sql, array($sessionID, $userID, $ip));
Z_Core::$MC->set("syncSession_{$sessionID}", array('sessionID' => $sessionID, 'userID' => $userID), $this->sessionLifetime - 600);
$this->responseXML->sessionID = $sessionID;
$this->end();
}
示例4: logAccess
public function logAccess()
{
if (!$this->id) {
throw new Exception("Key not loaded");
}
$ip = IPAddress::getIP();
// If we already logged access by this key from this IP address
// in the last minute, don't do it again
$cacheKey = "keyAccessLogged_" . $this->id . "_" . md5($ip);
if (Z_Core::$MC->get($cacheKey)) {
return;
}
try {
$sql = "UPDATE `keys` SET lastUsed=NOW() WHERE keyID=?";
Zotero_DB::query($sql, $this->id, 0, ['writeInReadMode' => true]);
$sql = "REPLACE INTO keyAccessLog (keyID, ipAddress) VALUES (?, INET_ATON(?))";
Zotero_DB::query($sql, [$this->id, $ip], 0, ['writeInReadMode' => true]);
} catch (Exception $e) {
error_log("WARNING: " . $e);
}
Z_Core::$MC->set($cacheKey, "1", 60);
}
示例5: logAccess
public function logAccess()
{
if (!$this->id) {
throw new Exception("Key not loaded");
}
$sql = "UPDATE `keys` SET lastUsed=NOW() WHERE keyID=?";
Zotero_DB::query($sql, $this->id);
$ip = IPAddress::getIP();
$sql = "INSERT INTO keyAccessLog (keyID, ipAddress) VALUES (?, INET_ATON(?))";
Zotero_DB::query($sql, array($this->id, $ip));
}