Python 在给定IP和子网掩码时确定网络IP
在Python中,如果我有一个IP地址和一个子网掩码作为字符串,如何确定网络IP i、 e.IP=10.0.0.20,掩码=255.255.255.0将导致网络IP为10.0.0.0模块可快速使用IP地址作为字符串: 代码: 结果: 该模块可以快速使用ip地址作为字符串: 代码: 结果:Python 在给定IP和子网掩码时确定网络IP,python,networking,ip,mask,Python,Networking,Ip,Mask,在Python中,如果我有一个IP地址和一个子网掩码作为字符串,如何确定网络IP i、 e.IP=10.0.0.20,掩码=255.255.255.0将导致网络IP为10.0.0.0模块可快速使用IP地址作为字符串: 代码: 结果: 该模块可以快速使用ip地址作为字符串: 代码: 结果: 嗯,我可能应该把我做的事发出去。。它对我的目的有用: # Return the network of an IP and mask def network(ip,mask): network = ''
嗯,我可能应该把我做的事发出去。。它对我的目的有用:
# Return the network of an IP and mask
def network(ip,mask):
network = ''
iOctets = ip.split('.')
mOctets = mask.split('.')
network = str( int( iOctets[0] ) & int(mOctets[0] ) ) + '.'
network += str( int( iOctets[1] ) & int(mOctets[1] ) ) + '.'
network += str( int( iOctets[2] ) & int(mOctets[2] ) ) + '.'
network += str( int( iOctets[3] ) & int(mOctets[3] ) )
return network
嗯,我可能应该把我做的事发出去。。它对我的目的有用:
# Return the network of an IP and mask
def network(ip,mask):
network = ''
iOctets = ip.split('.')
mOctets = mask.split('.')
network = str( int( iOctets[0] ) & int(mOctets[0] ) ) + '.'
network += str( int( iOctets[1] ) & int(mOctets[1] ) ) + '.'
network += str( int( iOctets[2] ) & int(mOctets[2] ) ) + '.'
network += str( int( iOctets[3] ) & int(mOctets[3] ) )
return network
您可以使用内置库:
结果:
10.0.0.0
您可以使用内置库:
结果:
10.0.0.0
只需
和
带有掩码的地址即可获得网络。它也适用于IPv6。这些是字符串吗?永远不要尝试将IP地址作为字符串进行操作。这是失败的秘诀。IP地址是二进制数。@Stephernauch,是的,但您从不在字符串中操作IP地址。您必须使用将它们用作二进制数的东西。试图将IP地址作为字符串进行操作的人不可避免地会遇到问题。subnet='.'。连接([str(int(octet)&int(masked))作为八位字节,用zip(IP.split('.')、mask.split('.'))]]屏蔽。
没有第三方libsSimply的简单一行程序和
使用掩码获取网络的地址。它也适用于IPv6。这些是字符串吗?永远不要尝试将IP地址作为字符串进行操作。这是失败的秘诀。IP地址是二进制数。@Stephernauch,是的,但您从不在字符串中操作IP地址。您必须使用将它们用作二进制数的东西。试图将IP地址作为字符串进行操作的人不可避免地会遇到问题。subnet='...join([str(int(octet)&int(masked))for octet,在zip中屏蔽(IP.split('.')),mask.split('.')])
没有第三方libsun的简单单行程序幸运的是,我无法控制托管代码的机器,ipcalc无法导入。我必须用“艰难”的方式来做。大多数库都是python。您可以简单地以与部署代码相同的方式部署库……不幸的是,我无法控制托管代码的计算机,并且ipcalc无法导入。我必须用“艰难”的方式来做。大多数库都是python。您可以简单地以与部署代码相同的方式部署库。。。。
10.0.0.0