【发布时间】:2015-07-22 23:24:55
【问题描述】:
我在 python 中创建了一个服务器,在收到 HTTP 请求后,它会将请求发送到其他服务器。有时它会向自己发送请求,这会导致问题。有没有办法检测一个 IP 地址是否是它自己的地址?
它在云中的虚拟机中运行,无需访问外部互联网。那么有没有办法检测例如 10.158.3.251:5555 是运行代码的机器的 localhost?
编辑: 现在从 ifconfig 命令获取 IP 地址。感觉很笨拙,但很有效:
cmd = "/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'"
self.ip = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).communicate()[0]
打开以获得更好的解决方案,问题是预期的映射(10.158.3.250 virtual-158-3-250.xxx.xx)不在 /etc/hosts 文件中。
【问题讨论】: