python IP地址转16进制

python IP地址转16进制

第一种方法:

通过socket.inet_aton实现

import socket
from binascii import hexlify

ary=‘192.168.1.1‘
packed_ip_addr = socket.inet_aton(ary)
hexStr=hexlify(packed_ip_addr)
print(‘IP:‘+hexStr)

输出:
  IP:c0a80101

第二种方法:

将字符串分割成数组,在转换成16进制

ary=‘192.168.1.1‘
strbytes=ary.split(‘.‘)
len_=len(strbytes)
for i in range(0,len_):
    strbytes[i]=int(strbytes[i])
print(bytes(strbytes))

输出:
    b‘\xc0\xa8\x01\x01‘

另附:

数组倒置:arr.reverse()

  

时间: 2024-10-11 00:17:42

python IP地址转16进制的相关文章

python百例 --- ip地址与10进制的转换

1 - ip地址与10进制数的转换 当我们ping数字2130706433时,从127.0.0.1返回结果. IP地址是个32位的二进制数,表示成点分10进制,只是为了方便,如果把这32为二进制数转换成10进制数,计算机也是认识的. 2130706433(10进制)== 1111111000000000000000000000001(二进制) 为了更好的学习使用Python,那就编写一个将10进制数转成2进制的代码吧. 思路: 仔细分析,IP地址的四个10进制数,实际上就是256进制 10进制数

Python中读取到16进制数如何转成有符号数值

场景:用Python模拟设备做 Modbus TCP 协议时,读取到的寄存器值是S16(有符号16进制数),如何能得到正确的负数值呢? 代码如下: def get_s16(val): if val < 0x8000: return val else: return (val - 0x10000) 解释:由于Python不是强类型的语言,对于数据的值的大小没有严格的限制,所以可以直接通过做减法来获得正确的负数值.如果是其他的强类型语言,就需要按照负数补码原理来获取到高位符号位值后再取反处理,获得正

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

(1)拍扁数组 这是一个著名互联网公司今天的前端笔试题:多维数组维数不定,如[2,4,1,[2,3,4,[1,2],5,3],3,8]拍扁为[2,4,1,2,3,4,1,2,5,3,3,8].维数不定,应该要用递归: 答案: function flatten(arr){ var arrLength=arr.length; for(var i=0;i<arrLength;i++){ if(arr[i].constructor==Array){ arr.splice(i,1,flatten(arr[

【python】字符串、16进制等数据处理

最近做一个socket server,需要接收组播报文,并进行分析处理.其中涉及的一个问题是,待发送的报文是字符串形式,类似"hello world". 从wireshark截取的报文看,都是16进制数据,以为必须转为该种类型才能发送,需要转换为16进制字符串,类似"0x\a00x\c30x\b4"等. 但后来发现,直接发送数据也是ok的,应该是数据发送时自己会进行转码. 不了解的时候,网上查了下,发现大家推荐用到的模块是binascii,查看help 几个方法如下

IP地址中的进制转换

10进制转换为2进制例子=189189>128=1  189-128=6161<64=0     61-32=2929>16=1    29-16=1313>8=1   13-8=55>4=1    5-4=11<2=0      1=1=1即转为 1011101   132132>128=1   132-128=44<64=0     4<32=04<16=04<8=04=4=1  即 100001  2进制转化为10进制例子 11101

ip地址转换成16进制long

<span style="font-size:18px;">public class IpUtil { /** * ip地址转换成16进制long * @param ipString * @return */ public static Long ipToLong(String ipString) { Long[] ip = new Long[4]; int pos1= ipString.indexOf("."); int pos2= ipString.

python socket以16进制的数据进行传递与解析

参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行传输 #!/usr/bin/env python #coding:utf-8 __author__ = 'ferraborghini' from socket import * import struct #将16进制数据当做字节流传递 def dataSwitch(data): str1 = ''

数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制

int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.hashCode: "+arr4.hashCode()); //将hashCode值转化为16进制的两种方式 System.out.println(Integer.toString(366712642,16));//将整数转化为16进制的数为:15db9742 System.out.println(I

python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)

进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上,直接上例子 整数之间的进制转换: 10进制转16进制: hex(16)  ==>  0x10 16进制转10进制: int('0x10', 16)  ==>  16 类似的还有oct(), bin() ------------------- 字符串转整数: 10进制字符串: int('10')  ==>  10 16进制字符串: int('10', 16)  ==>  16 16进