我们知道查看linux的内网ip使用ifconfig就可以查看到,服务器本身的内网ip,但是我们访问外网的ip确不知道的,因为从服务器出去经过路由器交换机或者dns,dhcp等服务,最终的出口ip是不知道的,所以,如果我们的服务需要做一些支付相关的业务,就需要把我们的外网IP提供给对方,但是业务场景网络比较复杂,找一个ip也不容易。下面就介绍几种查看出口外网ip的几种方法:
使用curl查看
curl是一个get请求命令,可以通过请求获取出口公网的IP,看下面的例子:
[root@www.wulaoer.org ~]# curl ifconfig.me 117.136.38.180[root@www.wulaoer.org ~]# [root@www.wulaoer.org ~]# curl ifconfig.me/all ip_addr: 117.136.38.180 remote_host: unavailable user_agent: curl/7.29.0 port: 49176 language: referer: connection: keep_alive: method: GET encoding: mime: */* charset: via: 1.1 google forwarded: 117.136.38.180, 216.239.38.21[root@www.wulaoer.org ~]#
这里使用了ifconfig.me和ifconfig.me/all两种方法,ifconfig.me/all返回的更详细一点。
通过请求url
请求url和上面的curl方法是一样的,只是把请求的过程中返回的一样,看下面的例子:
[root@www.wulaoer.org ~]# curl icanhazip.com
117.136.38.180
[root@CentOS4 ~]# curl ipinfo.io
{
"ip": "117.136.38.180",
"city": "Beijing",
"region": "Beijing",
"country": "CN",
"loc": "39.9075,116.3972",
"org": "AS56048 China Mobile Communicaitons Corporation",
"timezone": "Asia/Shanghai",
"readme": "https://ipinfo.io/missingauth"
}[root@CentOS4 ~]#
[root@CentOS4 ~]# curl ipecho.net/plain
117.136.38.180[root@CentOS4 ~]#
[root@CentOS4 ~]# curl www.trackip.net/i
<!DOCTYPE html>
<html><head><title>2409:8900:1810:b154:d512:77ed:a282:3267</title>
<meta charset="utf-8" /><script src="/cdn-cgi/apps/head/3mylQIuozVhfFiJP1iGhloiI8eY.js"></script><link rel="external nofollow" target="_blank" href="https://www.wulaoer.org/wp-content/themes/begin/go.php?url=aHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVZhcmVsYStSb3VuZA==" rel="stylesheet"><style>
body { font-family: 'Varela Round', sans-serif; font-size: 48px; }
div { height: 100px; text-align: center; } small { font-size: 12px; } #flag { font-size: 150%; }
</style></head><body><div>
<span id="flag">/span>
<br>2409:8900:1810:b154:d512:77ed:a282:3267<br>
<small><a href="/ip">IP</a> · <a href="/ip?json">json</a></small></div></body></html>[root@CentOS4 ~]#
[root@CentOS4 ~]# curl ifconfig.me/all.xml
<info>
<ip_addr>117.136.38.180</ip_addr>
<remote_host>unavailable</remote_host>
<user_agent>curl/7.29.0</user_agent>
<port>41802</port>
<language></language>
<referer></referer>
<connection></connection>
<keep_alive></keep_alive>
<method>GET</method>
<encoding></encoding>
<mime>*/*</mime>
<charset></charset>
<via>1.1 google</via>
<forwarded>117.136.38.180, 216.239.38.21</forwarded>
</info>[root@CentOS4 ~]#
以上几种方法返回的结果不太一样,有的是返回xml,有的是返回的json,也有的是直接返回的是公网IP,所以可以根据自己的需求,使用不同的返回方法。
其它方法
还可以安装第三方的工具获取,我这里没有安装可以自己试一下。
host -t a dartsclink.com | sed 's/.*has address //' dig +short myip.opendns.com @resolver1.opendns.com
可以直接使用上面的命令请求,先就介绍到这了,以后有什么其它的方法在继续更新

您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏