php通過ip位址獲取城市資訊

2021-09-27 10:45:09 字數 2696 閱讀 7167

$ip = '1.202.241.99';

$ip1num = 0;

$ip2num = 0;

$ipaddr1 = "";

$ipaddr2 = "";

$dat_path = storage_path().'\qqwry.dat'; //檔案路徑

if (!preg_match("/^\d\.\d\.\d\.\d$/", $ip))

if (!$fd = @fopen($dat_path, 'rb'))

$ip = explode('.', $ip);

$ipnum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];

//獲取ip資料索引開始和結束位置 ↓

$databegin = fread($fd, 4);

$dataend = fread($fd, 4);

$ipbegin = implode('', unpack('l', $databegin));

if ($ipbegin < 0) $ipbegin += pow(2, 32);

$ipend = implode('', unpack('l', $dataend));

if ($ipend < 0) $ipend += pow(2, 32);

$ipallnum = ($ipend - $ipbegin) / 7 + 1;

$beginnum = 0;

$endnum = $ipallnum;

//使用二分查詢法從索引記錄中搜尋匹配的ip記錄

while ($ip1num > $ipnum || $ip2num < $ipnum)

//提取出來的資料轉換成長整形,如果資料是負數則加上2的32次冪

$str = iconv("gb2312", "utf-8//ignore", $ipaddr); //這邊純真ip資料庫獲取到的gb2312格式的文字,要先轉成utf8

return $str;

t檔案。

PHP 根據IP位址獲取所在城市

檔案目錄 iplocation qqwry qqwry.dat ipcity.class.php ipcity.class.php檔案 開啟ip資料庫 if fd fopen dat path,rb explode函式分解ip位址,運算得出整數形結果 userip explode userip us...

php 根據ip位址獲取地區資訊

public static function get info ip public static function substr11 str x u str,regs preg match all 正規表示式 擷取的字串 成功之後返回的結果集 是陣列 s join regs 0 join 可選。規定...

通過IP獲取MAC位址

option explicit private declare function openprocess lib kernel32 byval dwdesiredaccess as long,byval binherithandle as long,byval dwprocessid as long...