Python Socket模块中包含一些有用IP转换函数,说明如下:

socket.ntohl(x) // 类似于C语言的ntohl(x)

把32位正整数从网络序转换成主机字节序。

socket.ntohs(x) // 类似于C语言的ntohs(x)

把16位正整数从网络序转换成主机字节序。

socket.htonl(x) // 类似于C语言的htonl(x)

把32位正整数从主机字节序转换成网络序。

socket.htons(x) // 类似于C语言的htons(x)

把16位正整数从主机字节序转换成网络序。

socket.inet_aton(ip_string) // 依赖于inet_aton的C实现

转换IPV4地址字符串(192.168.10.8)成为32位打包的二进制格式(长度为4个字节的二进制字符串),它不支持IPV6。inet_pton()支持IPV4/IPV6地址格式。

socket.inet_ntoa(packed_ip)

转换32位打包的IPV4地址为IP地址的标准点号分隔字符串表示。

socket.inet_pton(address_family,ip_string)

转换IP地址字符串为打包二进制格式。地址家族为AF_INET和AF_INET6,它们分别表示IPV4和IPV6。

socket.inet_ntop(address_family,packed_ip)

转换一个打包IP地址为标准字符串表达式,例如:“5aef:2b::8”或“127.0.0.1”。

>>>import socket

>>>import struct

>>>socket.ntohl(struct.unpack("i",socket.inet_aton("10.10.58.64"))[0])

168442432L

>>>socket.inet_ntoa(struct.pack("i", socket.htonl(168442432L)))

'10.10.58.64'

>>>struct.unpack("=I", socket.inet_aton("190.10.58.64"))

(1077545662,)

>>>socket.inet_ntoa(struct.pack("=I", 1077545662))

'190.10.58.64'

# 从IP地址字符串转换为整数值defIp2Int(ip_string):

return struct.unpack(“!I”,socket.inet_aton(ip))[0

# 从网络字节序的数字转换为IP地址(点号分隔)

def Int2Ip(ip):

return socket.inet_ntoa(struct.pack(“!I”,ip))

注:这里使用方法,同上一篇中python实现ip和数字的互转通过lambda函数实现的效果是一样的,结果值也是一样的。而且这里也更推荐前者,比较清晰易懂,且不用调用其他模块。

python转换函数使用_Python Socket模块中的IP转换函数相关推荐

  1. 【Python 必会技巧】copy 模块中 copy() 与 deepcopy() 函数的区别

    Python 中赋值语句不复制对象,而是在目标和对象之间创建绑定关系.对于自身可变或者包含可变项的集合对象,开发者有时会需要生成其副本用于改变操作,进而避免改变原对象.copy 模块提供了通用的浅层复 ...

  2. python requests post请求_Python“requests”模块中的POST请求无法正常工作

    POST https://maxcvservices.dnb.com/rest/Authentication x-dnb-user: MyUsername x-dnb-pwd: MyPassword ...

  3. C语言——选择控制结构 寻找中位数v1.0编写一个函数返回三个整数中的中间数。函数原型:int mid(int a, int b, int c);功能是返回a,b,c三数中大小位于中间的一个数。

    寻找中位数v1.0 编写一个函数返回三个整数中的中间数. 函数原型:int mid(int a, int b, int c); 功能是返回a,b,c三数中大小位于中间的一个数. 程序运行结果示例1: ...

  4. matlab如何输出一个函数的图像,在matlab中如何输出一个函数的图像

    点击查看在matlab中如何输出一个函数的图像具体信息 答:A. imread imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread('filename','fmt')其 ...

  5. python主函数调用格式_Python的模块与函数

    一.概述Python的程序由包.模块和函数组成. 函数是一段可重用的有名称的代码.通过输入的参数值,返回需要的结果,并可存储在文件中供以后使用.几乎任何Python代码都可放在函数中.Python为函 ...

  6. 《零基础入门学习Python》学习过程笔记【30模块中的函数,os模块,ospath模块中的函数(看了一点)】...

    注:os操作系统 1.如何使用模块中的函数? 先导入模块 import模块名 再用模块名.函数() >>> import random >>> random.ran ...

  7. python threading模块的方法_Python THREADING模块中的JOIN()方法深入理解

    看了oschina上的两个代码,受益匪浅.其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束.这将阻塞正在调用的线程,直到被调用join() ...

  8. Python内置time模块中,time.time()函数和time.sleep()函数的用法

    time模块 time模块是Python内置模块,能让Python程序读取系统时钟的当前使时间.在time模块中,time.time( ) 和time.sleep( )函数是最常用和最有用的模块. t ...

  9. python randint函数边界_Python random模块sample、randint、shuffle、choice随机函数

    一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).ra ...

最新文章

  1. Animation 模拟纸盒的爆破
  2. 使用NMAKE管理工程
  3. 基于Selenium2和TestNG的自动化测试
  4. pytorch cross_entropy
  5. “无中生有”计算机视觉探奇
  6. 微信和Python之间,还能这样玩,你所不知道的骚操作!
  7. Linux下的进程概论与编程二(进程控制)
  8. maven配置tomcat7
  9. C语言学习笔记(1)--基本概念和函数用法
  10. HTTPS原理与流程
  11. 树的平衡之AVL树——错过文末你会后悔,信我
  12. oracle trigger 延迟执行_springboot中定时任务执行Quartz的使用
  13. 再看网路层分组的转发
  14. python维度切片中三个是怎么取值的_总结python 多维切片之冒号和三个点的使用方法...
  15. UTONMOS:中国区块链专利申请数量占全球总量的84%
  16. 纸飞机飞行曲线matlab,从小到大只会做个纸飞机?关于折纸的「高端」技巧通通告诉你...
  17. 深度学习的应用与实践
  18. 十隔日推算法_年、月、日、时干支推算法
  19. 【Volume X has invalid topology for mapped brick meshing】
  20. ei计算机相关 小木从,怀念楼讲心那棵小木钩瞒

热门文章

  1. 关于Linq to DataSet
  2. C#使用oracle数据库的function与procedure
  3. VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用
  4. 某中学要对学校运动会进行计算机管理,2020年新编高职入学考试适应性试卷信息技术试卷定稿名师精品资料....
  5. 无返回值_只需一步,在Spring Boot中统一Restful API返回值格式与处理异常
  6. QT使用中的一些记录
  7. vscode写java没有提示_VS Code报错Language Support for Java(TM)插件显示需要JDK11 写java代码没有提示...
  8. python多线程操作列表_详解Python多线程下的list
  9. hive读取hdfs存放文件_数据获取层之Flume快速入门(一) 实时监控单个追加文件
  10. windows7 安装MySQL 解决报错 服务没有响应控制功能