摘要:在Linux系统中查看他人IP地址通常涉及网络诊断和协议分析,可通过以下系统工具和编程方法实现:1. 系统层网络工具`netstat -antupe`:显示所有活跃网络连接,包含远程IP和端口(需root权限查看完整信息)。`ss -tulnp`:Socket Statistic...
在Linux系统中查看他人IP地址通常涉及网络诊断和协议分析,可通过以下系统工具和编程方法实现:
1. 系统层网络工具
`netstat -antupe`:显示所有活跃网络连接,包含远程IP和端口(需root权限查看完整信息)。
`ss -tulnp`:Socket Statistics工具的现代替代方案,可列出TCP/UDP连接及关联进程。
`tcpdump -i eth0 -nn 'port 80'`:抓取指定网卡的原始流量,通过过滤HTTP端口可提取源IP(需安装libpcap库支持)。
2. 应用层监控
分析Web服务器日志(如Nginx的access.log),其中`$remote_addr`字段记录客户端真实IP(需注意反向代理场景下的X-Forwarded-For头)。
使用`iftop -nP`实时监控网络流量,可视化显示当前通信的对端IP地址。
3. 编程实现方案
python
import socket
from scapy.all import sniff
通过RAW Socket捕获IP头
def packet_handler(pkt):
if pkt.haslayer('IP'):
print(f"来源IP: {pkt['IP'].src}, 目标IP: {pkt['IP'].dst}")
sniff(prn=packet_handler, count=10) # 需CAP_NET_RAW权限
4. 高级技术扩展
ARP协议分析:`arp-scan -l`扫描本地网络,通过MAC地址反查IP(依赖ARP缓存)。
被动指纹识别:使用`p0f`工具分析TCP/IP包特征推测操作系统类型。
分布式日志收集:ELK栈集中存储分析多节点日志,通过Grok提取IP地理信息。
注意:企业环境中建议结合iptables/nftables实现IP自动拦截,编程时应注意异步IO处理以提高抓包效率。在容器化场景下需区分宿主机和容器网络命名空间,通过`nsenter`切换命名空间后操作。实际应用需遵守相关法律法规,获取授权后方可进行网络探测。