一文梳理获取本地IP和远程IP的各种方式,附Python代码实例
本地 IP 是指设备在本地网络(如家庭、办公室局域网)中被分配的IP地址,用于在该局域网内设备之间的通信和识别,一般由路由器分配。远程 IP 则是互联网上其它网络或服务器的 IP 地址,用于设备与外部网络通信,如访问网站时的服务器 IP。
获取本地IP地址
1. 系统设置查看
其中 IP 地址 192.168.0.104 就是当前设备本地的 IP 地址。这个地址并不能直接用来访问外界互联网,需要将请求转发到路由器,路由器用分配的公网 IP 地址转发该请求,并将远程服务器返回的请求结果再转发给本地设备。
2. 命令行获取
ifconfig是Linux命令,用于显示或配置网络设备,如IP地址、子网掩码、MAC地址等。
获取IP地址命令如下:
ifconfig | grep 'inet ' | grep netmask
3. Python代码实现
import socket
HOST = '192.168.69.52'
PORT = 8001
try:
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.connect(('8.8.8.8',80))
local_ip = s.getsockname()[0]
print(f"本地 IP 地址: {local_ip}")
finally:
s.close()
执行代码
python local_ip.py
本地 IP 地址: 192.168.0.104
获取远程 IP 地址
1. 命令行获取
curl ifconfig.me
221.xxx.146.69
2. 特定网站查看
3. Python代码实现
import requests
def get_public_ip():
# 获取真实公共 IP 地址
try:
response = requests.get('https://ident.me')
public_ip = response.text
return public_ip
except requests.RequestException as e:
print(f"无法获取远程 IP 地址: {e}")
return None
if __name__ == "__main__":
public_ip = get_public_ip()
print(f"远程 IP 地址: {public_ip}")
执行代码
python remote_ip.py
远程 IP 地址: 221.xxx.146.69