import socket
import struct
def get_default_gateway_linux():
with open("/proc/net/route") as fh:
for line in fh:
fields = line.strip().split()
if fields[1] != '00000000' or not int(fields[3], 16) & 2:
continue
return socket.inet_ntoa(struct.pack("<L", int(fields[2], 16)))
def getNetworkIp():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('bt', 0))
return s.getsockname()[0]
print "Your Machine IP has been detected as "+getNetworkIp()
print "Your Gateway IP has been detected as "+get_default_gateway_linux()
上面的代码在回溯5r3中执行时既不显示任何错误也不显示任何输出 请帮助我了解这个代码!你知道吗
这可能太简单而不真实,但最后两行是getNetworkIp()的一部分,因为它们是这样缩进的。你知道吗
我甚至从Python那里得到了一个缩进错误。你知道吗
请注意,当我将最后2条print语句移到第0列时,会出现另一个错误,因为我遇到了“name or service not known”错误。。。但这可能是Linux/Python的老问题,或者需要root。你知道吗
无论如何,尝试取消最后两个print语句的缩进。你知道吗
您的两个打印语句是制表符/间隔的。删除它们,它将工作,因为我已经确认这是在CentOS 6.5上工作:
相关问题 更多 >
编程相关推荐