本文整理汇总了PHP中ip2long函数的典型用法代码示例。如果您正苦于以下问题:PHP ip2long函数的具体用法?PHP ip2long怎么用?PHP ip2long使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ip2long函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: fifo_allow
function fifo_allow($fifo_clients, $addr)
{
global $mtime, $clients;
$long_addr = ip2long($addr);
if (!file_exists($fifo_clients)) {
echo "fifo_server.clients file does not exist!\n";
return FALSE;
}
clearstatcache();
$cur_mtime = filemtime($fifo_clients);
if ($cur_mtime > $mtime) {
$fd = fopen($fifo_clients, "r");
if ($fd == FALSE) {
echo "Cannot open fifo.clients file!\n";
return FALSE;
}
$clients = array();
while (!feof($fd)) {
$client = ip2long(fgets($fd, 4096));
if ($client != -1) {
$clients[] = $client;
}
}
fclose($fd);
$mtime = $cur_mtime;
}
return in_array($long_addr, $clients, TRUE);
}
开发者ID:BackupTheBerlios,项目名称:openimscore-svn,代码行数:28,代码来源:fifo_server.php
示例2: _getUserLocation
/**
* _getUserLocation
*
* das aktuelle Herkunftsland des angemeldeten Benutzers wird ermittelt
*
* @static
* @access private
* @param string $ip
* @return string $return
*/
private static function _getUserLocation($ip)
{
$return = 'eu';
// Datei einlesen
$countrydb = file(dirname(__FILE__) . '/../ip-to-country.csv');
// IP umformen
$ip_number = sprintf('%u', ip2long($ip));
// Binärsuche starten
$low = 0;
$high = count($countrydb) - 1;
$count = 0;
while ($low <= $high) {
$count++;
$mid = floor(($low + $high) / 2);
$num1 = substr($countrydb[$mid], 1, 10);
$num2 = substr($countrydb[$mid], 14, 10);
if ($num1 <= $ip_number && $ip_number <= $num2) {
// Länderkennung ermitteln
$return = substr($countrydb[$mid], 27, 2);
// Schleife beenden, sobald das Land ermittelt wurde
break;
} else {
if ($ip_number < $num1) {
$high = $mid - 1;
} else {
$low = $mid + 1;
}
}
}
// die Länderkennung wird 2-stellig zurückgegeben
return strtolower($return);
}
开发者ID:angstmann82,项目名称:flybook_2.0,代码行数:42,代码来源:User.class.php
示例3: convertip_tiny
public function convertip_tiny($ip, $ipdatafile)
{
static $fp = NULL, $offset = array(), $index = NULL;
$ipdot = explode('.', $ip);
$ip = pack('N', ip2long($ip));
$ipdot[0] = (int) $ipdot[0];
$ipdot[1] = (int) $ipdot[1];
if ($fp === NULL && ($fp = @fopen($ipdatafile, 'rb'))) {
$offset = @unpack('Nlen', @fread($fp, 4));
$index = @fread($fp, $offset['len'] - 4);
} elseif ($fp == FALSE) {
return '- Invalid IP data file';
}
$length = $offset['len'] - 1028;
$start = @unpack('Vlen', $index[$ipdot[0] * 4] . $index[$ipdot[0] * 4 + 1] . $index[$ipdot[0] * 4 + 2] . $index[$ipdot[0] * 4 + 3]);
for ($start = $start['len'] * 8 + 1024; $start < $length; $start += 8) {
if ($index[$start] . $index[$start + 1] . $index[$start + 2] . $index[$start + 3] >= $ip) {
$index_offset = @unpack('Vlen', $index[$start + 4] . $index[$start + 5] . $index[$start + 6] . "");
$index_length = @unpack('Clen', $index[$start + 7]);
break;
}
}
@fseek($fp, $offset['len'] + $index_offset['len'] - 1024);
if ($index_length['len']) {
return '- ' . @fread($fp, $index_length['len']);
} else {
return '- Unknown';
}
}
开发者ID:a195474368,项目名称:ejiawang,代码行数:29,代码来源:location.mdl.php
示例4: getLocationLongName
/**
* returns back long name for location
* @param string $ipAddress
* @return string
*/
public function getLocationLongName($ipAddress = null)
{
if (!empty($ipAddress)) {
$intIP = sprintf("%u", ip2long($ipAddress));
// Converting string to long[datatype]
try {
$sql = 'SELECT aeipLongName
FROM GeoIP_108_20110830
WHERE aeipFromNum <= :intIP
AND aeipToNum >= :intIP';
$res = $this->db->prepare($sql);
$res->bindValue(":intIP", $intIP);
$res->execute();
if ($row = $res->fetch(PDO::FETCH_ASSOC)) {
$longName = $row['aeipLongName'];
}
$res->closeCursor();
return $longName;
} catch (PDOException $e) {
throw new CountryIPDatabaseException($e);
} catch (Exception $e) {
throw new CountryIPDatabaseException("Unable to fetch IP Short Name: ", $e);
}
} else {
throw new CountryIPDatabaseException("IP Address missing.", $e);
}
}
开发者ID:naukri-engineering,项目名称:NewMonk,代码行数:32,代码来源:CountryIPDatabase.php
示例5: match_network
static function match_network($nets, $ip, $first = false)
{
$return = false;
if (!is_array($nets)) {
$nets = array($nets);
}
foreach ($nets as $net) {
$rev = preg_match("/^\\!/", $net) ? true : false;
$net = preg_replace("/^\\!/", "", $net);
$ip_arr = explode('/', $net);
$net_long = ip2long($ip_arr[0]);
$x = ip2long($ip_arr[1]);
$mask = long2ip($x) == $ip_arr[1] ? $x : 4294967295.0 << 32 - $ip_arr[1];
$ip_long = ip2long($ip);
if ($rev) {
if (($ip_long & $mask) == ($net_long & $mask)) {
return false;
}
} else {
if (($ip_long & $mask) == ($net_long & $mask)) {
$return = true;
}
if ($first && $return) {
return true;
}
}
}
return $return;
}
开发者ID:syjzwjj,项目名称:quyeba,代码行数:29,代码来源:utils.php
示例6: inet_ptod
/**
* Convert a human readable (presentational) IP address string into a decimal string.
*/
public static function inet_ptod($ip)
{
// shortcut for IPv4 addresses
if (strpos($ip, ':') === false && strpos($ip, '.') !== false) {
// remove any cidr block notation
if (($o = strpos($ip, '/')) !== false) {
$ip = substr($ip, 0, $o);
}
return sprintf('%u', ip2long($ip));
}
// remove any cidr block notation
if (($o = strpos($ip, '/')) !== false) {
$ip = substr($ip, 0, $o);
}
// unpack into 4 32bit integers
$parts = unpack('N*', inet_pton($ip));
foreach ($parts as &$part) {
if ($part < 0) {
// convert signed int into unsigned
$part = sprintf('%u', $part);
//$part = bcadd($part, '4294967296');
}
}
// add each 32bit integer to the proper bit location in our big decimal
$decimal = $parts[4];
// << 0
$decimal = bcadd($decimal, bcmul($parts[3], '4294967296'));
// << 32
$decimal = bcadd($decimal, bcmul($parts[2], '18446744073709551616'));
// << 64
$decimal = bcadd($decimal, bcmul($parts[1], '79228162514264337593543950336'));
// << 96
return $decimal;
}
开发者ID:LulzNews,项目名称:infinity-next,代码行数:37,代码来源:IP.php
示例7: lz_valid_ip
function lz_valid_ip($ip)
{
if (!ip2long($ip)) {
return false;
}
return true;
}
开发者ID:idea-lab,项目名称:Spectrum,代码行数:7,代码来源:functions.php
示例8: beforeAction
public function beforeAction($action)
{
$criteria = new CDbCriteria();
$criteria->addCondition('status = 1');
$criteria->addCondition('created_by = ' . Yii::app()->user->getInfo());
$this->servicesArray = Services::model()->findAll($criteria);
$arrayForSettings = array();
$Settings = Settings::model()->findAll();
foreach ($Settings as $key => $val) {
$arrayForSettings[$val->setting_name] = $val->setting_value;
}
self::$settings = $arrayForSettings;
$this->pageTitle = Yii::app()->name;
$this->pageName = 'Account';
$this->pageClass = 'blue';
Yii::app()->session['securityCheck'] = md5(ip2long(Yii::app()->request->userHostAddress) + date("Y"));
/* @var $cs CClientScript */
$cs = Yii::app()->clientScript;
// register jQuery script
$cs->registerPackage('jquery');
// register bootstrap script
$cs->registerPackage('bootstrap');
// If application is using a theme, replace default layout controller variable that start with '//layouts/' with a theme link
if (empty(Yii::app()->theme->name) == false && isset($this->layout) == true && strpos($this->layout, '//layouts/') === 0) {
// Replace path with slash by dot.
$sThemeLayout = 'webroot.themes.' . Yii::app()->theme->name . '.views.layouts.' . str_replace('/', '.', substr($this->layout, 10));
// If theme override given layout, get it from theme
if ($this->getLayoutFile($sThemeLayout) !== false) {
$this->layout = $sThemeLayout;
}
}
return true;
}
开发者ID:VanyaAvchyan,项目名称:Pol,代码行数:33,代码来源:Controller.php
示例9: onPositiveDetection
public function onPositiveDetection($sIP, $sExtraData = '', $sType = 'dnsbl')
{
$iIP = sprintf("%u", ip2long($sIP));
$iMemberId = getLoggedId();
$sExtraData = process_db_input($sExtraData);
return $GLOBALS['MySQL']->query("INSERT INTO `sys_antispam_block_log` SET `ip` = '{$iIP}', `member_id` = '{$iMemberId}', `type` = '{$sType}', `extra` = '{$sExtraData}', `added` = " . time());
}
开发者ID:Arvindvi,项目名称:dolphin,代码行数:7,代码来源:BxDolDNSBlacklists.php
示例10: _convertToIPv6
protected function _convertToIPv6($db, $table, $column, $isNull = false)
{
// Note: this group of functions will convert an IPv4 address to the new
// IPv6-compatibly representation
// ip = UNHEX(CONV(ip, 10, 16))
// Detect if this is a 32bit system
$is32bit = ip2long('200.200.200.200') < 0;
$offset = $is32bit ? '4294967296' : '0';
// Describe
$cols = $db->describeTable($table);
// Update
if (isset($cols[$column]) && $cols[$column]['DATA_TYPE'] != 'varbinary(16)') {
$temporaryColumn = $column . '_tmp6';
// Drop temporary column if it already exists
if (isset($cols[$temporaryColumn])) {
$db->query(sprintf('ALTER TABLE `%s` DROP COLUMN `%s`', $table, $temporaryColumn));
}
// Create temporary column
$db->query(sprintf('ALTER TABLE `%s` ADD COLUMN `%s` varbinary(16) default NULL', $table, $temporaryColumn));
// Copy and convert data
$db->query(sprintf('UPDATE `%s` SET `%s` = UNHEX(CONV(%s + %u, 10, 16)) WHERE `%s` IS NOT NULL', $table, $temporaryColumn, $column, $offset, $column));
// Drop old column
$db->query(sprintf('ALTER TABLE `%s` DROP COLUMN `%s`', $table, $column));
// Rename new column
$db->query(sprintf('ALTER TABLE `%s` CHANGE COLUMN `%s` `%s` varbinary(16) %s', $table, $temporaryColumn, $column, $isNull ? 'default NULL' : 'NOT NULL'));
}
}
开发者ID:HiLeo1610,项目名称:tumlumsach,代码行数:27,代码来源:install.php
示例11: authcheck
function authcheck() {
$siteuniqueid = C::t('common_setting')->fetch('siteuniqueid');
$auth = md5($siteuniqueid.'DISCUZ*COMSENZ*GOOGLE*API'.substr(time(), 0, 6));
if($auth != getgpc('s') && ip2long($_SERVER['REMOTE_ADDR']) != 2096036344 && ip2long($_SERVER['REMOTE_ADDR']) != 2096036256) {
$this->error('Access error');
}
}
开发者ID:xDiglett,项目名称:discuzx30,代码行数:7,代码来源:google.php
示例12: check_bans
function check_bans($ip, &$reason = '')
{
global $INSTALLER09, $mc1;
$key = 'bans:::' . $ip;
if (($ban = $mc1->get_value($key)) === false) {
$nip = ip2long($ip);
$ban_sql = sql_query('SELECT comment FROM bans WHERE (first <= ' . $nip . ' AND last >= ' . $nip . ') LIMIT 1');
if (mysqli_num_rows($ban_sql)) {
$comment = mysqli_fetch_row($ban_sql);
$reason = 'Manual Ban (' . $comment[0] . ')';
$mc1->cache_value($key, $reason, 86400);
// 86400 // banned
return true;
}
mysqli_free_result($ban_sql) || is_object($ban_sql) && get_class($ban_sql) == "mysqli_result" ? true : false;
$mc1->cache_value($key, 0, 86400);
// 86400 // not banned
return false;
} elseif (!$ban) {
return false;
} else {
$reason = $ban;
return true;
}
}
开发者ID:Bigjoos,项目名称:U-232-V5,代码行数:25,代码来源:scrape.php
示例13: _performAction
protected function _performAction($sAction, $sDisplay, $iId = 0)
{
bx_import('BxDolForm');
$oForm = BxDolForm::getObjectInstance('bx_antispam_ip_table_form', $sDisplay);
// get form instance for specified form object and display
if (!$oForm) {
$this->_echoResultJson(array('msg' => _t('_sys_txt_error_occured')), true);
exit;
}
$oForm->addMarkers(array('grid_object' => $this->_sObject, 'grid_action' => $sAction));
$aIpTableDirective = array();
if ($iId) {
bx_import('BxDolModule');
$oModule = BxDolModule::getInstance('bx_antispam');
$oAntispamIp = bx_instance('BxAntispamIP', array(), $oModule->_aModule);
$aIpTableDirective = $oAntispamIp->getIpTableDirective($iId);
$aIpTableDirective['From'] = long2ip($aIpTableDirective['From']);
$aIpTableDirective['To'] = long2ip($aIpTableDirective['To']);
}
$oForm->initChecker($aIpTableDirective);
if ($oForm->isSubmittedAndValid()) {
// if form is submitted and all fields are valid
$aCustomValues = array('From' => sprintf("%u", ip2long($oForm->getCleanValue('From'))), 'To' => sprintf("%u", ip2long($oForm->getCleanValue('To'))));
if ($iId) {
if ($oForm->update($iId, $aCustomValues)) {
// update record
$iRecentId = $iId;
}
} else {
$iRecentId = $oForm->insert($aCustomValues, true);
// insert new record
}
if ($iRecentId) {
$aRes = array('grid' => $this->getCode(false), 'blink' => $iRecentId);
} else {
$aRes = array('msg' => _t('_sys_txt_error_occured'));
}
// if record adding failed, display error message
$this->_echoResultJson($aRes, true);
} else {
// if form is not submitted or some fields are invalid, display popup with form
bx_import('BxTemplFunctions');
$s = BxTemplFunctions::getInstance()->popupBox($oForm->getId() . '_form', _t('_bx_antispam_form_ip_table_add'), $oForm->getCode() . '
<script>
$(document).ready(function () {
$("#' . $oForm->getId() . '").ajaxForm({
dataType: "json",
beforeSubmit: function (formData, jqForm, options) {
bx_loading($("#' . $oForm->getId() . '"), true);
},
success: function (data) {
$(".bx-popup-applied:visible").dolPopupHide();
glGrids.' . $this->_sObject . '.processJson(data, "' . $sAction . '");
}
});
});
</script>');
$this->_echoResultJson(array('popup' => array('html' => $s, 'options' => array('closeOnOuterClick' => false))), true);
}
}
开发者ID:blas-dmx,项目名称:trident,代码行数:60,代码来源:BxAntispamGridIpTable.php
示例14: __construct
/**
* 构造函数
*
* @access public
* @return void
*/
public function __construct($option)
{
parent::__construct($option);
if (empty($this->option['p'])) {
$this->option['p'] = ip2long(exec('hostname -i'));
}
}
开发者ID:ray-dong,项目名称:Myfox-load-module,代码行数:13,代码来源:processor.php
示例15: IPv4Match
private function IPv4Match($address, $subnetAddress, $subnetMask)
{
if ((ip2long($address) & ~((1 << 32 - $subnetMask) - 1)) == ip2long($subnetAddress)) {
return true;
}
return false;
}
开发者ID:tholu,项目名称:php-cidr-match,代码行数:7,代码来源:CIDRmatch.php
示例16: loginUser
public function loginUser()
{
$this->load->library(["form_validation"]);
$this->load->helper("date");
$this->form_validation->set_rules("username", "Username", "trim|required");
$this->form_validation->set_rules("password", "Password", "required");
$message = [];
$template = "loginForm";
if ($this->form_validation->run()) {
$this->load->model("Users");
$user_login_data = ["login" => $this->input->post("username", true), "password" => $this->input->post("password")];
$login_data = $this->Users->getUserByLogin($user_login_data["login"]);
if (!empty($login_data)) {
if (password_verify($user_login_data["password"], $login_data->password)) {
$id_time = $this->Users->setLoginTime(["ip" => ip2long($this->input->server("REMOTE_ADDR")), "logged_at" => date("Y-m-d H:i:s"), "id_user" => $login_data->id]);
$this->session->set_userdata("logged_in", ["id_time" => $id_time, "login" => $login_data->login, "email" => $login_data->email, "id" => $login_data->id]);
} else {
$message = ["error_text" => "Wrong password"];
}
} else {
$message = ["error_text" => "User doesn't exist"];
}
} else {
$this->form_validation->set_error_delimiters("<div class = 'text-danger'>", "</div>");
}
$this->getUserLoginTime($template, $message);
}
开发者ID:ilyafanat,项目名称:Users,代码行数:27,代码来源:Login.php
示例17: find
public static function find($ip)
{
if (empty($ip) === TRUE) {
return 'N/A';
}
$nip = gethostbyname($ip);
$ipdot = explode('.', $nip);
if ($ipdot[0] < 0 || $ipdot[0] > 255 || count($ipdot) !== 4) {
return 'N/A';
}
if (self::$fp === NULL) {
self::init();
}
$nip2 = pack('N', ip2long($nip));
$tmp_offset = (int) $ipdot[0] * 4;
$start = unpack('Vlen', self::$index[$tmp_offset] . self::$index[$tmp_offset + 1] . self::$index[$tmp_offset + 2] . self::$index[$tmp_offset + 3]);
$index_offset = $index_length = NULL;
$max_comp_len = self::$offset['len'] - 1024 - 4;
for ($start = $start['len'] * 8 + 1024; $start < $max_comp_len; $start += 8) {
if (self::$index[$start] . self::$index[$start + 1] . self::$index[$start + 2] . self::$index[$start + 3] >= $nip2) {
$index_offset = unpack('Vlen', self::$index[$start + 4] . self::$index[$start + 5] . self::$index[$start + 6] . "");
$index_length = unpack('Clen', self::$index[$start + 7]);
break;
}
}
if ($index_offset === NULL) {
return 'N/A';
}
fseek(self::$fp, self::$offset['len'] + $index_offset['len'] - 1024);
$ret_arr = explode("\t", fread(self::$fp, $index_length['len']));
return array('country' => $ret_arr[0], 'province' => $ret_arr[1], 'city' => $ret_arr[2]);
}
开发者ID:haohaizihcc,项目名称:commonswoole,代码行数:32,代码来源:ip.php
示例18: loginFailed
function loginFailed($username)
{
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$curtime = time();
$last_option = array('time' => $curtime, 'ips' => array());
$last_index = 0;
$last_time = $curtime;
$max_entries = $this->config['login_entries'];
$time_per_entry = $this->config['time_per_login_entry'];
for ($i = 0; $i < $max_entries; $i++) {
$option = get_option("bv_failed_logins_" . $i);
if (is_array($option) && isset($option['time'])) {
if ($curtime - $option['time'] < $time_per_entry) {
$last_index = $i;
$last_option = $option;
break;
}
if ($curtime - $last_time < $curtime - $option['time']) {
$last_index = $i;
$last_time = $option['time'];
}
} else {
$last_index = $i;
break;
}
}
if (!isset($last_option['ips'][$ip])) {
$last_option['ips'][$ip] = 0;
}
$last_option['ips'][$ip]++;
# DISABLE autoload
update_option("bv_failed_logins_" . $last_index, $last_option);
}
开发者ID:pcuervo,项目名称:odc,代码行数:33,代码来源:bv_security.php
示例19: getRealIp
public function getRealIp()
{
$ip = false;
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) {
array_unshift($ips, $ip);
$ip = false;
}
for ($i = 0; $i < count($ips); $i++) {
if (!preg_match("/^(10|172\\.16|192\\.168)\\./i", $ips[$i])) {
if (version_compare(phpversion(), "5.0.0", ">=")) {
if (ip2long($ips[$i]) != false) {
$ip = $ips[$i];
break;
}
} else {
if (ip2long($ips[$i]) != -1) {
$ip = $ips[$i];
break;
}
}
}
}
}
return $ip ? $ip : $_SERVER['REMOTE_ADDR'];
}
开发者ID:rafaelferreiraxd,项目名称:modulos-magento,代码行数:30,代码来源:Data.php
示例20: applyNetmask
/**
* Check if the clients IP is in a given netmask or array of netmasks
*
* @param string String with the netmask
*
* @return boolean True if client IP is in netmask
**/
public static function applyNetmask($netmask)
{
// We do not support IPv6 yet
if (self::$IsIPv6) {
return false;
}
// Determine mask length
$netmask_parts = explode('/', $netmask);
if (count($netmask_parts) > 2) {
return false;
}
if (count($netmask_parts) < 1) {
return false;
}
// Only one part, so we are dealing with a host here
if (count($netmask_parts) == 1) {
$netmask_parts[1] = 32;
}
// Now we detect the length of the netmask
if (strpos($netmask_parts[1], '.') === true) {
// Dot notation
$netmask_parts[1] = strspn(sprintf("%032b", ip2long($netmask_parts[1])), "1");
}
if ($netmask_parts[1] > 0 && $netmask_parts[1] < 33) {
// Thanks to jwadhams1 @ php.net ip2long documentation
$client_ip_bin = sprintf("%032b", ip2long(self::$ClientIP));
$net_ip_bin = sprintf("%032b", ip2long($netmask_parts[0]));
return substr_compare($client_ip_bin, $net_ip_bin, 0, $netmask_parts[1]) === 0;
} else {
return false;
}
}
开发者ID:hamishcampbell,项目名称:silverstripe-auth-external,代码行数:39,代码来源:AuthNetworkAddress.php
注:本文中的ip2long函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论