Python 在给定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 = ''

在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 = ''

    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