- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
按照给出的建议 here ,我正在使用检查 ipaddress
模块来执行类型检查:
In [25]: IPv4Address(u'100.64.1.1') in IPv4Network(u'100.64.0.0/10')
Out[25]: True
在 IPython 中运行良好。然而当我把它变成一个函数时:
import ipaddress
def isPrivateIp(ip):
ip4addressBlocks = [u'0.0.0.0/8', u'10.0.0.0/8', u'100.64.0.0/10', u'127.0.0.0/8', u'169.254.0.0/16', u'172.16.0.0/12', u'192.0.0.0/24', u'192.0.2.0/24', u'192.88.99.0/24',
u'192.168.0.0/16', u'198.18.0.0/15', u'198.51.100.0/24', u'203.0.113.0/24', u'224.0.0.0/4', u'240.0.0.0/4', u'255.255.255.255/32']
unicoded = unicode(ip)
if any(unicoded in ipaddress.IPv4Network(address) for address in ip4addressBlocks):
return True
else:
return False
print isPrivateIp(r'169.254.255.1')
我得到:
File "isPrivateIP.py", line 14, in <module>
print isPrivateIp(r'169.254.255.1')
File "isPrivateIP.py", line 9, in isPrivateIp
if any(unicoded in ipaddress.IPv4Network(address) for address in ip4addressBlocks):
File "isPrivateIP.py", line 9, in <genexpr>
if any(unicoded in ipaddress.IPv4Network(address) for address in ip4addressBlocks):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ipaddress.py", line 705, in __contains__
if self._version != other._version:
AttributeError: 'str' object has no attribute '_version'
为什么会这样?
最佳答案
您检查 unicode 字符串 ip
是否在网络中,而在您使用 IPv4Address
实例之前。
你的测试必须改为
if any(IPv4Address(unicoded) in ipaddress.IPv4Network(address) for address \
in ip4addressBlocks):
关于Python: ipaddress AttributeError: 'str' 对象没有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30996380/
我尝试了以下代码使我的代码在双堆栈模式下工作。不幸的是,它没有在双栈模式下打开端口。 var listener = new TcpListener(IPAddress.Any, 2222); list
我昨天问了一个关于将 HEX 字符串转换为 IP 的问题,并在这里得到了答案:C# convert hex into ip 问题是,当我使用函数时 var ip = new IPAddress(lon
我一直在尝试从 API 结果中解析 IP 地址,其中 IPv4 地址的四个部分中的每一个都带有前缀 0(零)。像这样: 127.000.000.001 而不是 127.0.0.1 我在尝试解析 192
我正在使用 pythons ipaddress 模块,我试图只获取第一个可用主机,而不是所有可用主机 下面给了我所有的主机,当我试图索引它时,我得到了下面的错误。 有没有其他方法可以只获得第一个可用的
我正在编写一个 Xamarin.Forms 应用程序,并将一个 PCL 项目添加到我在 Visual Studio 2013 中的主要解决方案中。我在使用多个标准 .net 类时遇到问题。这是一个列表
先介绍一些背景。我在局域网中的每台机器上都安装了 .net 客户端代理。他们也在同一个局域网上与我的中央服务器 [网站] 交互。 弄清楚哪些机器可以相互通信对我的网站来说很重要。例如,如果不配置路由器
我有一个服务器应用程序,我试图自动将 IP 地址设置为从机器动态分配的 IP 地址中获取的地址。到目前为止,我已经得到了这个来获取 IPv4,但它作为 IPAddress[] 类型返回,我在转换为 s
我有一个服务器应用程序,我试图自动将 IP 地址设置为从机器动态分配的 IP 地址中获取的地址。到目前为止,我已经得到了这个来获取 IPv4,但它作为 IPAddress[] 类型返回,我在转换为 s
在代表 IPv6 地址的 IPAddress 实例上调用 ToString() 方法,我得到了一些地址后带有百分号的文本。这是not documented .什么意思? 返回值如下所示:fe80::1
您好,是否可以为 jdbc 瘦驱动程序提供机器名称而不是 ipaddress。或者它会在运行时产生某种错误。我尝试使用机器名称而不是本地主机,它正在工作。因此,如果我们可以提供机器名称而不是 ipad
我有一个网络应用程序正在运行,让我们说下面的 IP:10.101.10.101。网络应用程序名称是示例,因此整个 URL 如下:https://10.101.10.101/example 现在尝试使用
我想在变量中获取我的计算机的 ipaddress此语句打印我的计算机的 ipaddress但我想把它分配给一个变量我如何从 inet_ntoa(inaddrr(ifr_addr.sa_data)) 中
好吧,这是一个小问题……但仍然令人恼火。 在 MSVS 2008 .NET 3.5 中,我的 IPAdress.Address 很长,我只是使用了 if(subnet == subnetmask.Ad
我正在使用 IPAddress.TryParse 来验证 IP 地址,但是如果我使用 if (IPAddress.TryParse("192.168.1.009", out ip) 它失败了,但是 i
我有一个函数,它使用 IPAddress 类返回给定 IP 地址是否有效。我正在测试它,即使我在没有点作为参数的情况下传递“0123456”或“11111”或“99999”,它也会返回有效(真)。我用
这个问题在这里已经有了答案: Extract ip addresses from Strings using regex (4 个答案) 关闭 4 年前。 我有一个包含多个 IP 地址的大字符串。
我想知道如何从 DhcpInfo.ipAddress 获取人类可读的 IP 地址?棘手的是,它是一个整数,显然你不能用整数存储 IP 地址。那么,IP 地址是如何编码的,它可以存储在一个 int 中?
我可以检查一个 ip 是否在私有(private)网络中吗?
我正在使用 System.Diagnostics.Eventing.Reader.EventLogWatcher 类 Hook 安全事件日志,并且我正在观察 2008 服务器机器上的事件 ID 462
在 .NET IPAddress.HostToNetworkOrder() 中只能接收一个 long int(64 位)并返回一个 long。这适用于 IPv4,但 IPv6 地址是 128 位的。我
我是一名优秀的程序员,十分优秀!