平时查IP地址时,不同操作系统对应的命令并不一样。不少人习惯打开浏览器直接搜索“我的IP”,但命令行里有更直接的查询手段。Windows环境最常用ipconfig,不带参数执行,会列出本机所有网卡基础信息,IPv4地址、子网掩码、默认网关都在输出内容里。想要获取完整信息,可以加上/all参数,MAC地址、DHCP租约时长、DNS服务器地址都会一并展示。只想单独提取IPv4那一行,可以执行ipconfig | findstr IPv4,不用在大量返回信息里手动查找。
Linux系统里,ifconfig属于老旧命令,归在net-tools软件包,很多全新安装的系统默认不会预装。现在更推荐ip addr,简写ip a也能执行,所有网卡的地址、运行状态、MTU数值都会清晰展示。想快速提取本机IP,hostname -I使用起来最简便,会把全部非环回地址用空格隔开输出。桌面版Linux如果装好NetworkManager组件,nmcli device show同样可以查看网络信息,输出排版相比ip addr会更整齐。

macOS和Linux有相似之处,ifconfig命令仍可正常使用,但没有ip这条指令。执行ifconfig | grep "inet ",能够筛选出IPv4地址,结果会附带子网掩码。想要更精准的结果,用ipconfig getifaddr en0即可,en0一般对应无线网卡,有线网卡通常是en1或者en2,具体需要看设备硬件情况。如果要查看全部网络服务配置,先用networksetup -listallnetworkservices列出服务名称,再执行networksetup -getinfo Wi-Fi查看详细参数。
查询公网IP,跨平台最简便的方案是curl。curl ifconfig.me只返回纯IP文本,curl shturl.cc/ra效果一致,curl shturl.cc/eZn输出内容会更加简洁。Windows 10及以上版本原生自带curl,旧版系统可以用PowerShell执行Invoke-RestMethod -Uri "https://ifconfig.me"获取。不想打开命令行,浏览器搜索“我的IP”也能查到,但这类结果有可能被缓存,实时性比不上命令行查询。
想要查找域名对应的IP,nslookup和dig是两个主流工具。nslookup在Windows、Linux平台都内置,直接输入nslookup example.com,会返回A记录以及对应的DNS服务器。dig在Linux和macOS上更为常见,dig example.com +short可以直接输出IP地址,去掉+short参数就会展示完整的DNS查询全过程。查询MX记录执行dig example.com MX,查询TXT记录替换参数为TXT。Windows系统没有dig,不过nslookup支持指定记录类型,nslookup -type=mx example.com就能完成MX记录查询。
查看IP归属地,命令行没有内置的定位指令,whois可以拿到注册相关资料。执行whois 8.8.8.8,会展示该IP段所属主体、注册国家信息。想要可读性更好的结果,curl ipinfo.io/8.8.8.8返回JSON格式数据,里面包含城市、地区、运营商信息。traceroute,Windows平台是tracert,能够查看数据包传输经过的路由节点。跳数少代表目标服务器距离近,跳数多或是路由绕行,大致可以判断服务器所在区域。mtr算是traceroute的增强版本,仅Linux可用,持续刷新路由状态。
局域网排错场景,arp -a实用性很高,这条命令展示IP与MAC地址映射表。如果发现同一个IP绑定两个不同MAC,大概率出现IP冲突。ip route或者netstat -rn用来查看路由表,可以直接确认默认网关。ss -tlnp查看本机监听端口,能看到每个端口绑定的IP,0.0.0.0代表监听本机全部地址,127.0.0.1仅允许本机内部访问。
不用强行记住全部命令,日常高频使用的就少数几条。ipconfig /all和ip addr查看本机网络配置,curl ifconfig.me获取公网IP,nslookup解析域名,whois查询IP归属。Windows与Linux命令并不互通,不要在Windows输入ifconfig,也不要在Linux尝试ipconfig。命令拼写容易出错,ip addr中间存在空格,hostname -I里面是大写I,不是小写L。使用前稍加留意,避免面对报错无从下手。