Linux下shell獲取目標IP的地區和運營商資訊
使用ip庫可以做到,但十分不方便,這裡用外部url來獲取相關資訊。
最常見的 什麼的都可以獲取到目標IP的地區和運營商,適用於shell指令碼的還是ip.cn舒坦。
[root@server21 ~]# curl ip.cn?ip=114.114.114.114
IP:114.114.114.114 來自:江蘇省南京市 信風網路
[root@server21 ~]# curl ip.cn?ip=
IP:103.227.128.245 來自:香港特別行政區
用curl命令就搞定了,但想把內容拆分一下給到變數使用時確發現他萬惡的用了中文符號
用awk -F 倒也是可以搞定。如下:
[root@localhost ~]# cat getip.sh
#!/bin/bash
Getip=$(curl -s ip.cn?ip=$1)
IParea=$(echo $Getip|awk -F ":" '{print $3}'|awk '{print $1}')
IPisp=$(echo $Getip|awk -F ":" '{print $3}'|awk '{print $2}')
if [ ! $1 ];then
IP=$(echo $Getip|awk -F ":" '{print $2}'|awk '{print $1}')
echo $IP $IParea $IPisp
else
echo $1 $IParea $IPisp
fi
[root@localhost ~]# ./getip.sh 114.114.114.114
114.114.114.114 江蘇省南京市 信風網路
但還是有點不方便。於是各種百度弄了段php的程式碼來轉換一下ip.cn的輸出結果:
<!--?php
header("Content-Type: text/html;charset=utf-8");
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
$ip = ($_GET["ip"]) ? $_GET["ip"] : $user_IP;
$ch = curl_init("http://?ip=$ip");
curl_setopt($ch,CURLOPT_USERAGENT,'curl/7.31');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$output = curl_exec($ch);
$output2 = substr($output,5);
$row=split(' ',$output2);
$cip=$row[0];
$carea=substr($row[1],9);
$cisp=$row[2];
$s = ($_GET["s"]) ? $_GET["s"] : "0";
if ($s==0)
{
echo "$cip $carea $cisp";
}
else
{
$carea1=substr($carea,0,9);
echo "$cip $carea1 $cisp";
}
curl_close($ch);
?>
<!--?php
header("Content-Type: text/html;charset=utf-8");
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
$ip = ($_GET["ip"]) ? $_GET["ip"] : $user_IP;
system("curl ip.cn?ip=$ip|sed -r 's/[^ ]+://g'");
?>
[root@localhost html]# curl localhost?ip=114.114.114.114
114.114.114.114 江蘇省南京市 信風網路
找個空間一放,以後用的時候直接訪問自己的頁面就可以了。
直接使用curl cip.cc
或
curl ipinfo.io
直接就能顯示IP的相關資訊,而且ipinfo.io這個網站還提供了json之類的呼叫介面呢
php程式碼可以在命令列執行,不需要非得建一個網站,如php -f
除此之外,可以用awk實現“curl ip.cn?ip=114.114.114.114 2>/dev/null | awk '{gsub(":"," ");print $2" "$4" "$5}'”,結果會直接顯示“114.114.114.114 江蘇省南京市 信風網路”,這樣就非常簡單了。
還有更簡單的方法。。。。。。
curl -s ip.cn?ip=114.114.114.114|sed -r 's/[^ ]+://g'
最常見的 什麼的都可以獲取到目標IP的地區和運營商,適用於shell指令碼的還是ip.cn舒坦。
[root@server21 ~]# curl ip.cn?ip=114.114.114.114
IP:114.114.114.114 來自:江蘇省南京市 信風網路
[root@server21 ~]# curl ip.cn?ip=
IP:103.227.128.245 來自:香港特別行政區
用curl命令就搞定了,但想把內容拆分一下給到變數使用時確發現他萬惡的用了中文符號
用awk -F 倒也是可以搞定。如下:
[root@localhost ~]# cat getip.sh
#!/bin/bash
Getip=$(curl -s ip.cn?ip=$1)
IParea=$(echo $Getip|awk -F ":" '{print $3}'|awk '{print $1}')
IPisp=$(echo $Getip|awk -F ":" '{print $3}'|awk '{print $2}')
if [ ! $1 ];then
IP=$(echo $Getip|awk -F ":" '{print $2}'|awk '{print $1}')
echo $IP $IParea $IPisp
else
echo $1 $IParea $IPisp
fi
[root@localhost ~]# ./getip.sh 114.114.114.114
114.114.114.114 江蘇省南京市 信風網路
但還是有點不方便。於是各種百度弄了段php的程式碼來轉換一下ip.cn的輸出結果:
<!--?php
header("Content-Type: text/html;charset=utf-8");
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
$ip = ($_GET["ip"]) ? $_GET["ip"] : $user_IP;
$ch = curl_init("http://?ip=$ip");
curl_setopt($ch,CURLOPT_USERAGENT,'curl/7.31');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$output = curl_exec($ch);
$output2 = substr($output,5);
$row=split(' ',$output2);
$cip=$row[0];
$carea=substr($row[1],9);
$cisp=$row[2];
$s = ($_GET["s"]) ? $_GET["s"] : "0";
if ($s==0)
{
echo "$cip $carea $cisp";
}
else
{
$carea1=substr($carea,0,9);
echo "$cip $carea1 $cisp";
}
curl_close($ch);
?>
<!--?php
header("Content-Type: text/html;charset=utf-8");
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
$ip = ($_GET["ip"]) ? $_GET["ip"] : $user_IP;
system("curl ip.cn?ip=$ip|sed -r 's/[^ ]+://g'");
?>
[root@localhost html]# curl localhost?ip=114.114.114.114
114.114.114.114 江蘇省南京市 信風網路
找個空間一放,以後用的時候直接訪問自己的頁面就可以了。
直接使用curl cip.cc
或
curl ipinfo.io
直接就能顯示IP的相關資訊,而且ipinfo.io這個網站還提供了json之類的呼叫介面呢
php程式碼可以在命令列執行,不需要非得建一個網站,如php -f
除此之外,可以用awk實現“curl ip.cn?ip=114.114.114.114 2>/dev/null | awk '{gsub(":"," ");print $2" "$4" "$5}'”,結果會直接顯示“114.114.114.114 江蘇省南京市 信風網路”,這樣就非常簡單了。
還有更簡單的方法。。。。。。
curl -s ip.cn?ip=114.114.114.114|sed -r 's/[^ ]+://g'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-2061673/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- javascript獲取客戶端ip地址省市和運營商程式碼例項JavaScript客戶端
- 如何獲取外網IP和IP的資訊
- Golang使用geoip2資料庫獲取ip城市與運營商Golang資料庫
- 獲取本地IP和mac等資訊Mac
- Linux下設定靜態IP和獲取動態IP的方法Linux
- 【目標區域捕獲-2】目標區域捕獲簡介
- Linux Shell指令碼中獲取本機ip地址方法Linux指令碼
- [轉]用Whois獲得電信運營商的IP地址是如何分配的?
- 獲取地圖的資訊到input裡地圖
- python 呼叫 shell ,獲取返回值和返回資訊Python
- 實用Linux下獲取公網IP地址Linux
- Linux下用Java獲取本機IP地址LinuxJava
- 高階運營和普通運營的區別
- js獲取ip,瀏覽器資訊JS瀏覽器
- javascript如何獲取事件目標物件JavaScript事件物件
- linux及windows下使用Python獲取IP地址LinuxWindowsPython
- cocos-lua 獲取IP 歸屬地
- Python獲取伺服器的廠商和型號資訊Python伺服器
- 全球IP whois資訊獲取與情報挖掘
- 區域網內獲取周圍裝置的ip和埠
- linux shell獲取時間(2)Linux
- vue獲取目錄下的檔名Vue
- 熱門好用的手機號碼歸屬地和運營商查詢
- JavaScript獲取li元素的下標JavaScript
- 小程式商城如何運營獲取盈利?
- Inxi:獲取Linux系統和硬體資訊的神器Linux
- 地圖下載器 002 根據下載範圍獲取要下載的瓦片資訊地圖
- 如何獲取 Linux 中的目錄大小Linux
- Linux: 獲取硬碟的UUID資訊Linux硬碟UI
- 精準圈定目標人群,高效落地運營策略
- 【iOS開發】獲取區域網IPiOS
- 基於隨機定位的地圖資訊獲取方式隨機地圖
- SAP中關於使用者IP資訊的獲取
- 獲取div元素下li元素的數目
- Java 獲取Word中的標題大綱(目錄)Java
- linux下獲取程式當前目錄絕對路徑Linux
- Linux 下獲取LAN中指定IP的網路卡的MAC(實體地址)LinuxMac
- 手機號碼歸屬地和運營商查詢程式碼例項