亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

比較全的獲得ip地理信息的幾種方法小結

2024-07-21 02:02:29
字體:
來源:轉載
供稿:網友
第一種是利用純真ip數據庫,這個可以在網上找到很多,缺點是更新有點慢。
第二種是利用門戶網站的接口
目前已知的有騰訊、新浪、網易、搜狐和Google提供IP地址查詢API,但是找得到的只有騰訊、新浪和網易的,Google的貌似要用Google Maps所以沒有研究??戳讼聡鴥鹊膸讉€騰訊提供的是JavaScript的,網易提供的是XML,而新浪的有多種格式可以用,注意非XML的數據源都是GBK格式的,不管是JavaScript調用還是PHP調用都要轉換一下編碼,不然得到的是亂碼。而更需要注意的是,如果一次性查詢多個IP,使用門戶網站的API來查詢會非常緩慢,我大概寫了個for循環試了下,不管是用PHP解析XML還是file_get_contents()函數獲取內容,查詢10次以上會變得非常緩慢,甚至可能超時。
騰訊的IP地址API接口地址:http://fw.qq.com/ipaddress,返回的是數據格式為:var IPData = new Array(“123.124.2.85″,”",”北京市”,”");,一個JavaScript的對象,目前還不知道如何輸入IP查詢。
新浪的IP地址查詢接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
新浪多地域測試方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=123.124.2.85
網易有道的IP地址查詢接口:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=123.124.2.85
使用JS代碼進行調取騰訊的api接口:
查看源代碼打印幫
復制代碼 代碼如下:

<script language=”javascript” type=”text/javascript” src=”http://fw.qq.com/ipaddress”></script>
<script>document.write(“你的IP是:”+IPData[0]+”,來自:”+IPData[2]);</script>
//騰訊API的PHP調用方法
function getIpPlace(){
$ip=file_get_contents(“http://fw.qq.com/ipaddress”);
$ip=str_replace(‘”‘,' ‘,$ip);
$ip2=explode(“(“,$ip);
$a=substr($ip2[1],0,-2);
$b=explode(“,”,$a);
return $b;
}
$ip=getIpPlace();
print_r($ip);
//調用查詢接口需要抓取網頁,有三種方法,第一種是curl,第二種是
//file_get_contents,第三種fopen->fread->fclose,推薦第二種方法
/*
*根據騰訊IP分享計劃的地址獲取IP所在地,比較精確
*/
function getIPLoc($queryIP){
$url = ‘http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_ENCODING ,'gb2312′);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 獲取數據返回
$result = curl_exec($ch);
$result = mb_convert_encoding($result, “utf-8″, “gb2312″); // 編碼轉換,否則亂碼
curl_close($ch);
preg_match(“@<span>(.*)</span></p>@iU”,$result,$ipArray);
$loc = $ipArray[1];
return $loc;
}
//根據騰訊接口查詢ip地址,使用file_get_contents抓去網頁
function getIPLoc($queryIP){
$url = ‘http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;
$result = file_get_contents($url);
$result = mb_convert_encoding($result, “utf-8″, “gb2312″); // 編碼轉換,否則亂碼
preg_match(“@<span>(.*)</span></p>@iU”,$result,$ipArray);
$loc = $ipArray[1];
return $loc;
}
//根據騰訊接口查詢ip地址,使用fopen->fread->fclose抓去網頁
function getIPLoc($queryIP){
$url = ‘http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;
$handle = fopen (“$url”, “rb”);
$result = “”;
do {
$data = fread($handle, 1024);
if (strlen($data) == 0) {
break;
}
$result .= $data;
} while(true);
$result = mb_convert_encoding($result, “utf-8″, “gb2312″); // 編碼轉換,否則亂碼
preg_match(“@<span>(.*)</span></p>@iU”,$result,$ipArray);
$loc = $ipArray[1];
return $loc;
}
/********注:
1.使用file_get_contents和fopen必須空間開啟allow_url_fopen。方法:編輯php.ini,設置allow_url_fopen = On,allow_url_fopen關閉時fopen和file_get_contents都不能打開遠程文件。
2.使用curl必須空間開啟curl。方法:windows下修改php.ini,將extension=php_curl.dll前面的分號去掉,而 且需要拷貝ssleay32.dll和libeay32.dll到C:/WINDOWS/system32下;Linux下要安裝curl擴展*****/
//新浪查詢ip接口 第五個第六個是地理信息
function getiploc($IP_ip){
$IP_str = @file_get_contents(‘http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip='.$IP_ip);
if(!empty($IP_str)){
$IP_tmp = explode(” ”, $IP_str);
$IP_city = iconv(“GBK”, “UTF-8″, $IP_tmp[5]);
return $IP_city;
}
//有道API的PHP調用方法
$url = “http:www.youdao.com/smartresult-xml/search.s?type=ip&q=”.$ip;
$doc = new DOMDocument();
$doc->load($url);
$smartresult = $doc->getElementsByTagName(“product”);
foreach($smartresult as $product)
{
$locations = $product->getElementsByTagName(“location”);
$location = $locations->item(0)->nodeValue;
}
if($location != “”)
{
echo $i.”.”.$ip;
echo ” 來自”.$location.”的網友”;
}
else
{
echo $i.”.”.$ip;
echo ” 來自火星的網友”;
}
public function sinaIPApi($ip){
$str = file_get_contents(“http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=”.$ip);
$str = iconv(“gbk”, “utf-8//IGNORE”, $str);
preg_match_all(“/[/x{4e00}-/x{9fa5}]+/u”,$str,$get);
$add = implode(”,$get[0]);
return $add;
}
//$get是一個非常棒的二維數組

其中有道和新浪的是我自己寫的,新浪API也可以像騰訊API那樣用file_get_contents()函數獲取完地址后使用一連串的字符串函數處理,我寫的函數使用正則表達式從新浪的返回結果中提供包含中文的字符串,并且分段存入一個二維數組,這個可能只是針對新浪的API有用并且存在bug。舉個例子查詢學校分配給我的IP地址后var_dump()一下函數里面的$get變量得到以下結果: array(1) { [0]=> array(6) { [0]=> string(6) “中國” [1]=> string(6) “北京” [2]=> string(6) “北京” [3]=> string(9) “教育網” [4]=> string(6) “學?!?[5]=> string(18) “中國地質大學” } },而函數輸出的結果則是“中國北京北京教育網學校中國地質大學”,希望我的思路和方法能對別人有用。
最后再次提醒,如果是WordPress請使用第一種方法,否則使用API同時查詢所有留言者的真實地址會讓PHP超時的,希望各路大牛有更好的方法,至于限制顯示和顯示方式等神馬的都是WordPress應用問題,同時對于Java和C#來說思路也是一樣的,這些后續的問題等我考完試再細說。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美另类中文字幕| 国产精品女视频| 91九色蝌蚪国产| 26uuu另类亚洲欧美日本老年| 91在线无精精品一区二区| 成人av在线亚洲| 国产精品久久久久久久久久小说| 亚洲无限乱码一二三四麻| 久久这里只有精品99| 91av视频在线免费观看| 国产精品美女免费| 欧美电影免费观看高清| 国产成人一区二区在线| 色妞欧美日韩在线| 97超碰国产精品女人人人爽| 亚州欧美日韩中文视频| 92国产精品视频| 中文字幕亚洲一区| 国内精品模特av私拍在线观看| 国语自产精品视频在免费| 日韩a**中文字幕| 欧美性感美女h网站在线观看免费| 九九九热精品免费视频观看网站| 亚洲美女在线观看| 国产一区二区三区欧美| 中文字幕不卡在线视频极品| 久久久久久久爱| 国产裸体写真av一区二区| 亚洲精品一区二区网址| 精品久久中文字幕久久av| 欧美日本精品在线| 亚洲a级在线观看| 欧美一级片在线播放| 综合国产在线视频| 亚洲激情自拍图| 中文字幕不卡在线视频极品| 亚洲аv电影天堂网| 在线观看日韩欧美| 国产精品扒开腿爽爽爽视频| 亚洲黄色成人网| 欧美孕妇与黑人孕交| 最好看的2019年中文视频| 久久全球大尺度高清视频| 亚洲精品aⅴ中文字幕乱码| 亚洲一区二区久久| 国外成人性视频| 一区二区成人av| 欧美精品18videosex性欧美| 久青草国产97香蕉在线视频| 在线日韩av观看| 欧美大学生性色视频| 国产精品大陆在线观看| 国产精品视频99| 一区二区三区天堂av| 日本中文字幕不卡免费| 久久综合伊人77777蜜臀| 91免费在线视频网站| 伦理中文字幕亚洲| 久久精品成人欧美大片古装| 国产在线视频91| 国产亚洲精品综合一区91| 精品久久久香蕉免费精品视频| 日韩美女免费线视频| 欧美激情一区二区三区成人| 国产一区二区三区毛片| 一本色道久久综合狠狠躁篇怎么玩| 亚洲九九九在线观看| 亚洲毛片在线观看.| 亚洲福利在线看| 国产三级精品网站| 精品亚洲一区二区| 亚洲色无码播放| 日韩av在线看| 成人亚洲综合色就1024| 成人亚洲综合色就1024| 一区二区在线视频| 亚洲一区二区国产| 亚洲免费成人av电影| 81精品国产乱码久久久久久| 日韩精品在线视频美女| 色老头一区二区三区在线观看| 欧美精品福利在线| 中国china体内裑精亚洲片| 青草青草久热精品视频在线观看| 色婷婷综合成人| 亚洲美女视频网站| 国产一区二区欧美日韩| 另类美女黄大片| 伊人av综合网| 亚洲网站在线观看| 一本色道久久综合狠狠躁篇的优点| 欧美激情二区三区| 国产成人91久久精品| 国产精品久久久久免费a∨大胸| 亚洲精品999| 久久久免费在线观看| 7777精品久久久久久| 久久这里有精品视频| 国产亚洲欧洲高清| 日韩高清人体午夜| 亚洲欧洲黄色网| 亚洲国产私拍精品国模在线观看| 国产精品人成电影| 亚洲va欧美va在线观看| 国产91免费看片| 国产精品视频成人| 亚洲成人免费网站| 国产精品亚洲综合天堂夜夜| 日本亚洲欧美成人| 国产一级揄自揄精品视频| 久久久久久69| 国产国语videosex另类| 欧美成人激情视频| 中文字幕国产精品| 国产美女91呻吟求| 国产日产欧美a一级在线| 在线成人中文字幕| 91免费在线视频网站| 操日韩av在线电影| 亚洲男人天堂网站| 欧美极品欧美精品欧美视频| 亚洲精品在线观看www| 日韩美女写真福利在线观看| 久久久99久久精品女同性| 日韩大片免费观看视频播放| 欧美性xxxx极品高清hd直播| 久久综合网hezyo| 欧美激情亚洲综合一区| 欧美国产视频一区二区| 日韩中文字幕在线免费观看| 国产精品网站视频| 亚洲综合在线小说| 久久久久国产一区二区三区| 国内揄拍国内精品少妇国语| 欧美性猛交xxxx乱大交| 亚洲美女av在线| 日韩精品在线观| 色黄久久久久久| 亚洲精品videossex少妇| 久久久91精品| 一本一道久久a久久精品逆3p| 91精品久久久久久久久不口人| 欧美成人sm免费视频| 欧美精品在线播放| 亚洲人成啪啪网站| 欧美日韩不卡合集视频| 亚洲女性裸体视频| 日韩成人中文字幕| 国产精品吊钟奶在线| 久久人人爽亚洲精品天堂| 久久电影一区二区| 成人黄色片在线| 亚洲女人被黑人巨大进入al| 国产美女久久精品| 精品一区二区三区四区在线| 中文字幕一区二区三区电影| 91tv亚洲精品香蕉国产一区7ujn| 日韩av第一页| 国外成人在线直播| 欧美激情a在线| 精品视频9999| 色偷偷9999www| 国产大片精品免费永久看nba| 亚洲精品视频免费|