FreeNAS(FreeBSD)衍生产品中是否有一些命令行函数可以返回我的外部地址? 由于相同的地址是与DynDns同步(通过路由器),在C#中我通过DNS查询检索到这样的:
var hostEntry = Dns.GetHostEntry("myexternalname.dyndns.org"); foreach (var iAddress in hostEntry.AddressList) { if (iAddress.AddressFamily == AddressFamily.InterNetwork) { MessageBox.Show(iAddress); } }
先决条件
从命令行:
dig yourserver.dyndns.org | grep "IN" | grep "[0-9]" | awk '{print $5}' | sort | uniq
好:
不好:
丑陋的:
这里是我最喜欢的命令:
wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
简单。 明确。 如果你有curl:
curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
我发现在FreeNAS上工作的命令。
# host myexternalname.dyndns.org
它返回
myexternalname.dyndns.org A 89.172.197.320
从那我只使用awk:
host myexternalname.dyndns.org | awk '{ print $3; }'
而且只返回IP:
89.172.197.320
PS我知道89.172.197.320是不是真正的IP地址。 我这样写,为了不分享我的IP地址(或别人的IP地址)。
PPS感谢Kronick和Avery Payne的帮助,因为他们的想法将我推向了正确的方向。