添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

IP地址一般用字符串“XXX.XXX.XXX.XXX”表示。例如,“192.168.147.1”、“127.0.0.1”等。在确定主机IP地址段时,需要将IP地址的每段转换成数字。

1 inet_aton()方法

该方法的使用方法是

socket.inet_aton(ip_string)

其中,参数ip_string是字符串类型的IP地址,该字符串的格式是“XXX.XXX.XXX.XXX”。inet_aton()方法的返回值类型是bytes,包含了四段数字对应的十六进制数。使用inet_aton()方法对IP地址格式进行转换的代码如下所示:

host_name = socket.gethostname()
ip_addr = socket.gethostbyname(host_name)
packed_ip_addr = socket.inet_aton(ip_addr)
print(ip_addr)
print(packed_ip_addr)

以上代码中,通过gethostname()方法获取主机名;之后通过gethostbyname()获取主机的IP地址,此时的IP地址是“XXX.XXX.XXX.XXX”的字符串;接下来通过inet_aton()方法将IP地址格式转换为bytes类型;最后打印出来的两种格式的IP地址,如图1所示。

图1 两种格式的IP地址

从图1可以看出,bytes类型的变量packed_ip_addr包含4个byte类型的元素,其中“\xc0”是十六进制格式的数字,其对应的十进制值位192,“\xa8”对应的十进制值是168,以此类推。可以通过下标访问packed_ip_addr中的四个元素,例如packed_ip_addr[1]表示第二个元素,即\xa8,也就是168。

相关链接1 gethostname()方法和gethostbyname()方法的用法,请参考 Python中获取主机名和IP地址的方法_棉猴的博客-CSDN博客

2 inet_ntoa()方法

该方法将bytes格式的IP地址转换为“XXX.XXX.XXX.XXX”的字符串格式,其使用方法为

socket.inet_ntoa(bytes)

inet_ntoa()方法的返回值是“XXX.XXX.XXX.XXX”格式的字符串。使用该方法的代码如下所示。

unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr)
print(unpacked_ip_addr)

其中,packed_ip_addr是“1 inet_aton()方法”中得到的bytes类型的IP地址。以上代码运行的效果如图2所示。

图2 “XXX.XXX.XXX.XXX”格式的IP地址

互联网上分布着很多设备,如电脑、手机、智能手表等。设备与设备之间会互相通信,如你给朋友发送一条微信语音信息,其实就是你的手机在与朋友的手机进行通信。   但是,这条信息为什么会准确到达你朋友的手机,而不是其他设备?这是因为网络上的每台设备都有一个唯一的网络地址。如果把网络信息看作日常生活 的信件,网络地址就是信件上的收件人地址,有了这个地址,信息就能准确到达网络上的某一设备。   网络地址有不同类型,如 MAC 地址、IP 地址、URL 等,本关针对的是 IP 地址。IP 地址目前主要有两个版本:I.. 本文实例讲述了 python 批量生成本地 ip地址 方法 。分享给大家供大家参考。具体分析如下: 这段代码用于在本地计算机上生成本地 ip地址 绑定到网卡,生成的是一个bat的批处理文件,运行此批处理文件,可以通过ipconfig查看 #!/usr/bin/ python 2.7 # -*- coding: utf-8 -*- # Filename: AddIPAliases.py import re,sys,socket,struct # 1. 判断 IP地址 是否合法; 2. 判断用户输入的IP是否在Class A,Class B 或 Class C def CheckIP(IP,IPClassesIn 转载自:https://blog.csdn.net/fan_hai_ping/article/details/8435140 Python Socket模块 包含一些有用IP 转换 函数,说明如下:socket.ntohl(x) // 类似于C语言的ntohl(x)把32位正整数从网络序 转换 成主机字节序。socket.ntohs(x) // 类似于C语言的ntohs(x)把... chr(x):将整数 转换 为一个字符,整数为字符的ASCII编码 ord(x):将一个字符 转换 为他的ASCII编码的整数值 hex(x):将一个整数 转换 为一个十六进制字符串 oct(x):将一个整数 转换 为一个八进制字符串 eval(str):将一个字符串当作有效表达式求值,返回计算结果 data1 = bin(int(input()))[2:].rjust(32,"0") #整数转 IP地址 temp = [] caozuo = [temp.append(int(data. 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程 用到的ai工具。 通过将这四个部分的数字组合在一起,我们可以唯一地标识互联网上的任何设备。不用担心,我将通过使用 Python 来解开这个谜团,并向大家展示如何轻松地进行 IP地址 转换 。然后,打印该对象,会自动将其 转换 回常规的 IP地址 字符串表示。无论是整数表示、常规字符串表示还是二进制表示, Python 都提供了简单而强大的工具来满足我们的需求。在这个例子 ,我们使用了packed属性来获得IPv4地址的二进制表示形式,然后使用。另一方面,如果我们想要将整数表示的 IP地址 转换 回常规的 IP地址 字符串,我们可以使用。 背景知识: ip地址 (这里都是指的ipv4地址)是一个32位(4字节)的无符号整数。为方便记忆,把每个字节看做一个无符号数,并以.号隔开。比如常见的私有地址192.168.100.1, dns 114.114.114.114。 下面这段代码,展示 python 如何处理 ip地址 的一些 方法 。 import socket, struct inet _ aton :字符串 转换 成一个32位的网络字节序二进制值 inet _addr:返回值为32位的网络字节序二进制, inet _ ntoa :将一个32位的网络字 IP地址 的规划,不仅是网络设计 的重 之重,还会直接影响网络的转发效率和扩展性。很多从事网络工作多年的朋友,免不了要在工作 重复计算诸如网段、子网掩码、广播地址、子网数。还要判断IP网段的包含关系和对多个 IP地址 段进行汇总等等。如果计算数据量特别大,不仅费时费力,还容易出错。 Python 有一个非常强大的第三方库IPy,适用于 Python 2.6-3.7版本,可以帮助我们完成此类计算任务。