如何检查python中预定义列表中的IP地址

如何检查python中预定义列表中的IP地址,python,sockets,comparison,Python,Sockets,Comparison,如果我有包含多个IP地址的列表: IpAddresses = ["192.168.0.1","192.168.0.2","192.168.0.3","192.168.0.4"] 然后在收到数据包后,我想检查其源地址是否包含在预定义的IP地址列表中 data, address = rxsocket.recvfrom(4096) 我尝试了两种选择,但都不起作用: 第一: if (address in IpAddresses): do something 然后,在进行比较之前,我尝试将地

如果我有包含多个IP地址的列表:

IpAddresses = ["192.168.0.1","192.168.0.2","192.168.0.3","192.168.0.4"]
然后在收到数据包后,我想检查其源地址是否包含在预定义的IP地址列表中

data, address = rxsocket.recvfrom(4096)
我尝试了两种选择,但都不起作用:

第一:

if (address in IpAddresses):
    do something
然后,在进行比较之前,我尝试将地址转换为字符串:

str_address = str(address)
if (str_address in IpAddresses):
    do something
我不熟悉python语法,所以请你告诉我怎么做

if address[0] in IpAddresses:

由于address对象显示为元组,因此列表中只显示第0个索引,因此您应该检查它是否存在。您通常可以跳过if语句的括号,除非它使if语句的可读性降低

尝试打印address是原始字节字符串吗?或者是ascii点表示法…print Resp IP is:,address提供此输出:“Resp IP is:”,“192.168.0.3”,30490请在您的问题中使用代码格式,并提供具体的比较和输出。似乎address是包含address和port的元组。如果您使用的是Python 3.x,你可能想要结帐和这个。这可能会很有帮助,特别是如果您在今后的工作中考虑到更复杂的处理。