我有一个脚本,可以使用笔记本电脑的 IP 和 WAN 上的 CIDR 更新某些远程系统,换句话说,就是互联网如何看待我。
我使用以下命令在 bash 中获取 WAN 上的 IP:
dig +short myip.opendns.com @resolver1.opendns.com
如何在 bash 中获取 WAN 上 IP 的 CIDR?
答案1
一般来说,简短的回答是这实际上不可行。
在非常特殊的情况下,您可以访问您的防火墙,您的防火墙在其外部接口上有一个公共 IP 地址,您可以访问防火墙上的“shall”提示。你可以这样做:
ssh [email protected] 'eval $(ipcalc -np `ifconfig eth1 | sed -n "s/inet addr:\([^ ]*\).*Mask:\([^ ]*\).*/\1 \2/p"`) ; echo $NETWORK/$PREFIX'
该命令是Redhat6特有的。
请记住,此信息可从防火墙获得,因为网络管理员输入 ISP 提供的信息来配置外部接口。因此,获取此信息的唯一可靠方法是询问您的 ISP。即使您可以从 DNS 和 whois 记录中推断出 ISP 的 CIDR,您也无法推断出 ISP 如何在内部细分可用 IP。这是行政职能,必须通过行政手段解决。