最有效命令获取本机外网IP

活着IP查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
curl ip.gs
curl -4 ip.gs
curl -6 ip.gs
curl ip.sb
curl -4 ip.sb
curl -6 ip.sb
curl cip.cc
curl -4 cip.cc
curl icanhazip.com
curl -4 icanhazip.com
curl -6 icanhazip.com
curl api.ipify.org
curl -4 api.ipify.org
curl bot.whatismyipaddress.com
curl -4 bot.whatismyipaddress.com
curl -6 bot.whatismyipaddress.com
curl ipinfo.io/ip
curl -4 ipinfo.io/ip
curl ipecho.net/plain
curl -4 ipecho.net/plain
curl ipinfo.io
curl -4 ipinfo.io
curl -4 myip.ipip.net
curl -4 ifconfig.me
curl -4 http://members.3322.org/dyndns/getip

curl ifconfig.me
curl icanhazip.com
curl curlmyip.com
curl ip.appspot.com
curl ipinfo.io/ip
curl ipecho.net/plain
curl www.trackip.net/i


#补充
curl ip.sb
curl ip.6655.com/ip.aspx
curl whatismyip.akamai.com
wget -qO - ifconfig.co
dig +short myip.opendns.com @resolver1.opendns.com
curl ident.me
curl v4.ident.me
curl v6.ident.me
curl inet-ip.info

#返回IP和地区
curl ip.6655.com/ip.aspx?area=1
curl 1111.ip138.com/ic.asp
curl ip.cn
curl cip.cc
1
2
3
4
5
6
7
8
9
10
11
12
#4 Ways to Find Server Public IP Address in Linux Terminal
#1. Using dig Utility
dig +short myip.opendns.com @resolver1.opendns.com
#2. Using host Utility
host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}'
#3. Using wget Command Line Downloader
wget -qO- http://ipecho.net/plain | xargs echo
wget -qO - icanhazip.com
#4. Using cURL Command Line Downloader
curl ifconfig.co
curl ifconfig.me
curl icanhazip.com

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding: utf-8 -*-

import requests
import sys
import codecs

sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

#https://github.com/zaeval/freenom-dns-manage-library/blob/master/fnml.py
def get_my_public_ip():
ip_address = requests.get("http://ipecho.net/plain").text
print(ip_address)
# return ip_address


# 打印输出当前ip地址
def print_my_ip():
api_url = 'https://api.ipify.org/'
try:
res = requests.get(url=api_url)
res.raise_for_status()
res.encoding = 'utf-8'
# t= '当前使用 ip 地址:' + res.text + '\n'
print('当前使用 ip 地址:' + res.text)
except Exception as e:
# text='获取当前 ip 地址失败:' + str(e) + '\n'
print('获取当前 ip 地址失败:' + str(e))
def main_handler(event, context):
get_my_public_ip()
print_my_ip()
if __name__ == "__main__":
main_handler("","")

Bash

图片

在排除网络问题,建立新连接或配置防火墙时,了解设备的 IP 地址很重要。

IP 地址可以分为两类,公用和私有(专用)。公用 IP 是唯一的 IP 地址,可以从 Internet 访问。专用 IP 地址保留供您专用网络内部使用,而不会直接暴露给 Internet。此外,有两种类型的 IP 地址,即 IP 版本4(IPv4)和 IP 版本6(IPv6)。

本文将介绍几种确定 Linux 系统的公共 IP 地址和私有 IP 地址的不同方法。

查找你的私有 IP 地址

专用 IP 地址不可通过 Internet 路由,并且只能在本地网络内工作。通常,专用 IP 地址是由路由器分配给本地网络中的每个设备的。这为本地网络中的设备(例如电话、笔记本电脑、智能电视、打印机、媒体中心等)提供了唯一的 IP 地址。本地网络上的设备通过 NAT(网络地址转换)连接到 Internet。

以下 IPv4 地址范围是为专用网络保留的:

1
2
3
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

你可以通过使用诸如 ipifconfighostname 命令查询网络堆栈确定系统的私有 IP 地址。

在 Linux 中,用于显示和配置网络接口的标准工具是 ip

要显示所有网络接口和关联的 IP 地址的列表,请键入以下命令:

1
ip addr

输出如下所示。专用 IP 地址突出显示。

图片

你还可以使用以下命令来显示私有 IP 地址:

1
2
$ hostname -I
$ ifconfig

查找你的公共 IP 地址

公共 IP 地址是分配给网络设备的全球可路由 IP 地址,它允许直接访问 Internet。它们由其 ISP 分配给设备,并且每个设备都有唯一的公共 IP 地址。公用 IP 地址由家庭路由器、Web 服务器、邮件服务器等使用。

确定公共 IP 地址可以通过 HTTP/HTTPSDNS 协议联系远程服务器,并从远程服务器响应中获取 IP 地址。

如果你是在没有 GUI 的 Linux 服务器上获取你分配到的公网 IP 地址,你可以使用命令行工具 digcurlwget 等来获取。

大多数 DNS 提供商(例如:OpenDNS 和 Google)都允许你查询其服务器并获取你的公共 IP 地址。你可以使用以下任何命令来获取公网 IP:

1
2
3
$ dig ANY +short @resolver2.opendns.com myip.opendns.com
$ dig ANY +short @resolver2.opendns.com myip.opendns.com
$ dig ANY +short @ns1-1.akamaitech.net ANY whoami.akamai.net

另外,有许多在线 HTTP/HTTPS 服务可以返回你的公共 IP 地址。这里是其中的一些:

1
2
3
4
5
curl -s http://tnx.nl/ip
curl -s https://checkip.amazonaws.com
curl -s api.infoip.io/ip
curl -s ip.appspot.com
wget -O - -q https://icanhazip.com/

为了方便使用,你还可以创建一个别名来方便查询。例如,你可以在 ~/.bashrc~/.zshrc 中添加以下别名。

1
alias pubip='dig ANY +short @resolver2.opendns.com myip.opendns.com'

现在,你要查找公共 IP 时,只需键入 pubip 命令即可。

结论

至此,我们向你展示了通过几种不同的命令和在线服来查找私有和公共 IP 地址的方法,希望对你有所帮助!

命令行查询(详细):

  • UNIX/Linux:#curl cip.cc
  • Windows:>telnet cip.cc
  • >ftp cip.cc

命令行查询(纯ip):

  • UNIX/Linux:#curl ip.cip.cc

几个网址也非常好记忆

  • ip.cn
  • ipinfo.io
  • cip.cc
  • ifconfig.me
  • myip.ipip.net

IP.cn - IP 地址查询 | 地理位置 | 手机归属地 | DNS查询