在Linux环境下,有多种方法可以获取内网IP地址,下面列举几种常用的方法:
ip addr
命令: 这个命令可以列出系统中所有的网卡信息,包括内网IP地址。运行 ip addr
命令,在输出中找到 inet
字段后的IP地址即可。ifconfig
命令: 这个命令也可以列出系统中所有的网卡信息,包括内网IP地址。运行 ifconfig
命令,在输出中找到 inet
字段后的IP地址即可。hostname -I
命令: 这个命令可以直接输出系统的内网IP地址,比前两种方法更加简单。获取公网IP地址的方法相对内网IP地址来说要复杂一些,因为公网IP地址是由ISP(互联网服务提供商)分配的,不是由系统自己生成的。需要借助一些第三方服务来获取公网IP地址。下面列举几种常用的方法:
curl
命令: 可以使用 curl
命令访问一些公开的IP查询网站,从而获取公网IP地址。例如 curl ifconfig.me
或 curl checkip.amazonaws.com
。import requests
print(requests.get('http://ifconfig.me').text.strip())
#!/bin/bash
curl -s http://checkip.amazonaws.com/
有时候,我们不仅需要获取服务器的内网IP,还需要获取公网IP。为一次性获取这两个信息,可以使用下面的综合方法:
#!/bin/bash
INTERNAL_IP=$(hostname -I | cut -d' ' -f1)
EXTERNAL_IP=$(curl -s http://checkip.amazonaws.com/)
echo "Internal IP: $INTERNAL_IP"
echo "External IP: $EXTERNAL_IP"
这个脚本首先使用 hostname -I
命令获取内网IP地址,使用 curl
命令获取公网IP地址。将这两个IP地址分别输出到控制台。
在Linux环境下获取服务器的内网IP和公网IP有多种方法,每种方法都有自己的优缺点。使用 ip addr
、ifconfig
或 hostname -I
命令可以快速获取内网IP地址,而使用 curl
命令或编写脚本则可以获取公网IP地址。对于需要同时获取内网和公网IP的情况,可以使用综合方法一次性完成。希望本文对您有所帮助。