在strthon中将str类型点分十进制(ip地址)转换为十六进制

时间:2017-03-11 02:31:43

标签: python

我将ip x.x.x.x分配给以str返回的变量。需要帮助将此str类型的IP地址转换为十六进制

上下文:

ip = '1.1.1.1'
print type(ip) >>> str

Expected result:
ip = '1.1.1.1'
print ip >>> 0x01010101

请建议不必导入ipaddress模块​​。因为我们有不同的服务器与python版本2.6到3.3。如果此脚本必须在3.2以下的任何服务器上运行,那么运行此脚本的人必须pip install ipaddress module。任何帮助都在这里受到高度赞赏。

3 个答案:

答案 0 :(得分:1)

"0x" + "".join(format(int(octet), "02x") for octet in ip.split("."))

答案 1 :(得分:0)

您不需要任何额外的模块来执行此操作,这是一个有效的代码段:

 func loadViewController(identifier: String) {
      let vc = storyboard?.instantiateViewController(withIdentifier: identifier) as? ViewController
      if let eventVC = vc as? EventViewController {
          // Executed code in here
      } else if let finishVC = vc as? FinishViewController {
          // Executed code in here
      }
 }

将提供您想要的输出:

  

0x01010101

     

0xC0A80002

答案 2 :(得分:0)

您可以使用此示例获得所需的输出:

def str_to_hex(ip = ''):
    return '0x' + ''.join('{:02x}'.format(int(char)) for char in ip.split('.'))

print(str_to_hex("1.1.1.1"))
print(str_to_hex("213.1.23.1"))
print(str_to_hex("192.168.0.2"))

输出:

0x01010101
0xd5011701
0xc0a80002