-
2021-02-09 03:31:51
首先先说IP地址的定义:网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
IP地址的格式:四位点分十进制
比如 1100 0000 . 1010 1000 . 0000 0001 . 0000 1100对应的IP地址就是192.168.1.12
就是每四位将二进制转变为十进制
ip_addr = '192.168.2.10'
def ip2long(ip):
ip_list=ip.split('.') #首先先把ip的组成以'.'切割然后逐次转换成对应的二进制
result=0
for i in range(4): #0,1,2,3
result=result+int(ip_list[i])*256**(3-i)
return result
print(ip2long(ip_addr))
结果为:3232236042
把数字转换成ip地址
def long2ip(long):
floor_list = []
num = long
for i in reversed(range(4)):
res = divmod(num,256**i)
floor_list.append(str(res[0]))
num = res[1]
return '.'.join(floor_list)
long = 3232236042
a = long2ip(long)
print(a)
192.168.2.10
更多相关内容 -
IP地址转换与域名解析
2020-02-27 20:57:20IP地址转换与域名解析IP地址与端口IP地址转换相关类域名解析代码分析 识别是哪个进程。 (一)IP地址(1) 1.一个IP地址主要由两部分组成: (1)网络号:识别该地址所属的网络,它由Internet权利机构分配。 (2)主机号:指明网络内的主机,它由各个网络的管理员统一分配。 2.IPv4编址方案 ^由4个字节(十进制表示)组成的二进制值进行识别,中间用圆点分开,这种方法叫做 点分十进制 表示法。 ^例如:192.168.1.1 127.0.0.1 3.IPv6编址方案 ^每个IP地址有16个字节(128位二进制数),其完整格式用8段16进制表示,各段之间用 冒号分隔。多个连续的0可以用::表示。 ^例如:0:0:0:0:0:0:0:1 可以简写为::1 (一)IP地址(2) 1.子网掩码:子网掩码用于屏蔽IP地址的一部分以区别网络标识和主机标识。 2.子网掩码把所有的网络位(二进制)用1来标识,主机位用0来标识。 ^例如:如果将子网掩码设置为255.255.255.0,则对于IP地址192.168.1.X,其网络标识 部分为192.168.1;主机标识为:X。 3.可以利用子网掩码判断两台计算机是否在同一子网内。(具体操作:将其IP地址和子网 掩码做按位与运算,如果得到结果相同即在同一个子网内。) (二)端口 1.端口有两种含义: ①物理意义上的端口,如ADSL Modem、集线器的接口; ②逻辑意义上的端口,即进程标识,端口号的范围从0到65535,比如用于HTTP的80端口, 用于FTP的21端口等。 2.在网络编程研究中的端口均值逻辑意义上的端口。 ^端口是为了解决与多个进程同时进行通信问题。 3.可用端口地址的范围是十进制的0~65535。 ^端口地址用两字节二进制数来表示; ^1000以内的端口号大多被标准协议所占用; ^应用程序中可以自由使用的端口号一般都使用大于1000的值。
IP地址转换相关类
复杂的网络应用程序中,需要掌握几个最基本的类:
①提供网际协议IP地址的IPAddress类;
②包含IP地址和端口号的IPEndPoint类;
③为Internet或Intranet主机提供信息容器的IPHostEntry类。
1.IPAddress类(1/2)
^IPAddress位于System.Net命名空间下,提供了对IP地址的转换和处理功能。
^常用方法:Parse方法将IP地址字符串转换为IPAddress的实例。例如:Try { IPAddress ip = IPAddress.Parse("143.24.20.36"); } Catch { MessageBox.Show("请输入正确的IP地址!"); }
IPAddress类(2/2)
^利用该实例的AddressFamily属性可判断该IP地址是IPv6还是IPv4。IPAddress ip = IPAddress.Parse("::1"); if (ip.AddressFamily == AddressFamily.InterNetworkV6) { MessageBox.Show("这是IPv6地址"); } IPAddress类还提供了7个只读字段,分别代表程序中使用的特殊IP地址。
IPAddress类常见只读字段
2.IPEndPoint类
^IPEndPoint描述应用程序连接到主机上的服务所需的主机和端口信息。
^IPEndPoint类的常用构造函数为:public IPEndPoint(IPAddress address, int port); 第一个参数指定IP地址,第二个参数指定端口号。 例如: IPAddress localAddress = IPAddress.Parse("192.168.1.1"); IPEndPoint iep = new IPEndPoint(localAddress, 65000); string s1 = "IP地址为:" + iep.Address; string s2 = "IP端口为:" + iep.Port;
3.IPHostEntry类
^IPHostEntry类将一个域名系统(DNS)的主机名与一组别名和一组匹配的IP地址关联。该类一般和Dns类一起使用。
^常用属性
AddressList属性
获取或设置与主机关联的IP地址列表(包括IPv4和IPv6)
^HostName属性
包含了指定主机的主机名
Dns类的静态方法GetHostEntry()能够获得IPHostEntry对象。
例如:IPAddress[] ips = Dns.GetHostEntry(“news.sohu.com”).AddressList;
域名解析
网络主机是使用IP地址来定位的
域名比纯数字的IP地址更容易记忆
IP地址改变后,域名不变,仍可访问。
DNS(Domain Name System)完成域名到IP的转换DNS的解析过程: ^DNS是一种典型的C/S结构。 ^由Client向指定的DNS Server发出DNS请求报文,Server收到该请求报文之后,会回给 Client一个应答报文,满足Client的域名解析要求。
Dns类常用方法
(1)GetHostAddresses方法^利用GetHostAddresses方法可以获取指定主机的IP地址,该方法返回一个IPAddress类型 的数组。 ^方法原型为: public static IPAddress[] GetHostAddresses(string hostNameOrAddress); 参数中的hostNameOrAddress表示要解析的主机名或IP地址。 例如: IPAddress[] ips = Dns.GetHostAddresses("www.cctv.com"); ^若hostNameOrAddress是IP地址,则直接返回此地址;若hostNameOrAddress是空字符 串,则返回本机所有IPv4和IPv6地址。例如: IPAddress[] ips = Dns.GetHostAddresses(""); //获取本机的所有IP地址
(2)GetHostEntry方法
^GetHostEntry方法可返回一个IPHostEntry实例,用于在DNS服务器中查询与某个主机名 或IP地址关联的IP地址列表。 ^方法原型为 public static IPHostEntry GetHostEntry (string hostNameOrAddress) 参数中的hostNameOrAddress表示要解析的主机名或IP地址。 ^当参数为空字符串时,返回本地主机的IPHostEntry实例。 例如: IPHostEntry host = Dns.GetHostEntry(""); var ipAddresses = host.AddressList; //获取本机所有IP地址 string name = host.HostName; //获取本机主机名
(3)GetHostName方法
该方法用于获取本机主机名。 例如: string hostname = Dns.GetHostName( );
代码分析
(1) StringBuilder sb = new StringBuilder(); sb.AppendLine("获取www.cctv.com的所有IP地址:"); try { IPAddress[] ips = Dns.GetHostAddresses("www.cctv.com"); foreach (IPAddress ip in ips) { sb.AppendLine(ip.ToString()); } } catch (Exception ex) { MessageBox.Show(ex.Message,"获取失败"); } (2) string hostName = Dns.GetHostName(); sb.AppendLine("获取本机所有IP地址:"); IPHostEntry me = Dns.GetHostEntry(hostName); foreach (IPAddress ip in me.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { sb.AppendLine("IPv4:" + ip.ToString()); } else if (ip.AddressFamily == ddressFamily.InterNetworkV6) { sb.AppendLine("IPv6:" + ip.ToString()); } else { sb.AppendLine("其他:" + ip.ToString()); } } (3) IPAddress localip = IPAddress.Parse("::1"); //IPv6回路测试地址 Output(sb, localip); IPAddress localip1 = IPAddress.Parse("127.0.0.1");//IPv4回路测试地址 Output(sb, localip1); textBlock1.Text = sb.ToString(); } (4) private static void Output(StringBuilder sb, IPAddress localip) { IPEndPoint iep = new IPEndPoint(localip, 80); if (localip.AddressFamily == AddressFamily.InterNetworkV6) { sb.Append("IPv6端点: " + iep.ToString()); } else {sb.Append("IPv4端点: " + iep.ToString()); } sb.Append(",端口 " + iep.Port); sb.Append(",地址 " + iep.Address); sb.AppendLine(",地址族 " + iep.AddressFamily); }
特别注意:
仅供参考学习,转载请附上原文链接
图片来源于网络、个人收藏、个人制作
该篇文章不做任何商业用途,纯属分享学习心得,如有侵权,望联系本人处理
还在读大学的程序员,项目经验少,如有纰漏,感谢指正
需要源代码请私聊联系本人
谢谢配合如果这篇文章对您有帮助,小小的点个赞,算是给小学弟的鼓励吧!谢谢大佬!!/呱呱.jpg
-
第22节 NAT——实现公私有IP地址转换
2022-01-07 16:53:231. 了解IP地址的分类、私有地址有哪些。 2. 了解NAT技术应用的背景 3. 了解NAT技术的分类,掌握各自的原理。 4. 熟悉相关命令。 5. 深度理解路由器的工作原理。NAT
1 NAT概述
1.1 IP地址概述
- ipv4地址使用现状:现在已严重不够用。仅ABC类可以用,D类是组播,E类是科研。
- IP地址分为公网IP和私网IP。
- 公网IP仅能在公网上使用。
- 私网IP仅能在私网上使用,私有IP可以在不同的内网内重复使用。
- 为避免重复出现的私有IP冲突,公网上不允许出现私有IP地址。
- 私有IP地址范围,从原有ABC类中各抽出一部分作为私有IP地址。
- 10.0.0.0/8(10开头的),如10.1.1.1、10.10.1.254。
- 172.16.0.0/16~172.31.0.0/16(172.16开头的一直到172.31开头的),如172.31.100.200。
- 192.168.0.0/16(192.168开头的),如192.168.100.100。
- 公有IP地址,ABC类中除了私有IP地址以外的IP地址。
- 静/态公有IP地址:在运营商处购买的IP地址有静动态之分,对于需要搭配服务器供公网用户访问的公司,需要购买静态公用IP地址,因为动态IP地址刷新后会影响别人用ip地址对服务器的访问。
1.2NAT概述
- NAT定义:Network Address Translations 网络地址转换。
- 作用:NAT技术主要实现公私有IP地址转换。(解决ipv4地址不够用带来的麻烦)
- 简介:主机在内网使用的是私有IP地址,IP包头封装时使用的是私有地址,那该数据帧怎么走出外网的呢?答案是在数据帧走到路由器上准备由内网发往外网时,将私有IP地址替换为公有IP地址再封装。
- 配置位置:一般是在路由器或者防火墙上配置,不建议在三层交换机上配置。
2 NAT分类
2.1 静态NAT
- 在路由器接口上手动配置NAT地址转换表,一个私有IP对应一个公有IP地址。
- 缺点:公司够买了多少个公有IP地址,内网就有多少个主机能上网,一一对应。
2.2 动态NAT
- 路由器上配置一个私有地址池(公司内部所有主机用到的私有IP)动态映射一个公有地址池(所购买的公有IP),当有一个内网主机访问外网时,将该内网IP从内网地址池中取出,同时取出公网地址池中的一个IP地址,动态形成NAT地址转换表。默认当该主机24小时没有联系外网时,该动态NAT条目会自动消息,所被取出的公私有地址重新回到地址池中。
- 优点:相比于静态,不用手动修改NAT地址转换表。
- 缺点:公有IP有多少个,就能允许多少个内网主机上网,用完即止。
2.3 PAT
- 定义:Port Address Translations,端口地址转换,也称为端口复用技术。
- 在动态NAT基础上,增加overload复用技术。
- 工作流程:
- 公司内网主机私有IP地址为IPA,公有IP地址为IPB,想要访问百度服务器公有地址IPC,内网主机访问百度网页时,生成源端口号5000,目标端口号为80,主机将信息封装成数据帧发送到路由器。
- 数据帧到达路由器后,路由器解封装数据帧后,将其源IP与内部地址池进行匹配,命中后先动态生成NAT地址转换表。从内部地址池中将该IP地址复制到NAT转换表中、从外部地址池中将IP地址复制到NAT转换表中、从数据帧中复制源端口号到NAT转换表中、并由路由器动态生成一个端口号(一般从1开始,不可重复,当原条目消失后才能再次使用),所形成的NAT地址转换表如步骤7。
- 路由器替换掉数据包源IP和源端口号,封装后再将数据发送到外网。
- 路由器收到百度服务器回包时,路由器解封装数据帧,并检查NAT转换表,发现数据包中的目标IP是IPB、目标端口号是1,匹配表中条目。
- 路由器将数据包中目标地址和目标端口号替换掉,封装后再发给内网主机。
- 当内网有其他主机访问外网时,重复上述过程,依靠路由器自己动态生成的端口号区别各个条目。
- 上述工作过程在步骤2生成NAT地址转换表如下。
- 公司内网主机私有IP地址为IPA,公有IP地址为IPB,想要访问百度服务器公有地址IPC,内网主机访问百度网页时,生成源端口号5000,目标端口号为80,主机将信息封装成数据帧发送到路由器。
私有IP 公有IP 源端口号 动态端口 IPA IPB 5000 1 IPX IPB 8080 2 - 动态生成NAT地址转换表只能是在数据帧由路由器发至外网的过程中生成,数据帧从外网发到内网只能使用该表。
- 端口号范围:0~65535
- 弊端:每一个主机每一个进程都有可能占用一个端口号,每一个主机正常使用是估计约要占用50个端口号,也就是公司一个公用IP大概能供1000个人使用,对于规模更大的公司,需要多购买公用IP地址。
2.4 静态PAT
- 静态PAT也称为端口映射。
- 意义:从数据帧流向上看,动态PAT技术解决了多个内网主机访问外网服务器的问题;静态PAT解决了外网主机访问内网服务器的问题。
- 对于公司而言,不建议将提供员工上网使用的公网IP地址与服务建立静态映射,建议另外购买一个公用IP地址,提供给各个服务器使用。如果同时有两个WEB服务,且不想改端口号,则需要继续新购买公用IP地址。
- 虚拟公网IP地址,即VIP地址。一般是购买企业级带宽的公用IP,运营商会赠送一部分VI,用于公司映射服务器使用。
- 假设公司路由器外网接口配置的IP地址是100.1.1.1,另外购买的10.1.1.2地址是用于映射内网服务器给外网用户使用的,此时,无需在路由器接口上另外配置该IP地址,仅需在NAT地址转行表中添加该条目即可,运营商路由器自然会将公司所在网段100.1.1.0所有的数据帧均发送至100.1.1.1接口上,再根据NAT地址转换表发至内网设备上。
3 NAT命令
3.1 定义内外网接口
根据路由器上接口的方向进行定义,假设路由器上f0/0接口连接的是内网,f0/1接口连接的是外网。
en conf t int f0/0 ip nat inside exit int f0/1 ip nat outside exit
3.2 配置PAT
定义内部地址池
conf t #定义内部地址池 #ACL表应用于路由器接口上时进行数据包过滤,应用于其他位置只是匹配条件是否满足 acc 1 permit 192.168.0.0 0.0.255.255 #网段与反子网掩码配合用于匹配私有IP地址是否属于该池 #做PAT动态映射: #inside source 表示来自内网的数据包的源IP地址 #list1表示匹配上述的acc1表 #建立“满足acc1表的内网IP地址”与“f0/1接口的IP地址”的动态NAT表,进行地址转换,并启用overload技术。 ip nat inside source lint 1 int f0/1 overload #查看动态NAT地址转换表 show ip nat translations
3.3 配置静态端口转换
假设公司路由器外网接口配置的IP地址是100.1.1.1,另外购买的10.1.1.2地址是用于映射内网服务器给外网用户使用的,此时,无需在路由器接口上另外配置该IP地址,仅需在NAT地址转行表中添加该条目即可,运营商路由器自然会将公司所在网段100.1.1.0所有的数据帧均发送至100.1.1.1接口上,再根据NAT地址转换表发至内网设备上。
conf t ip nat inside source static 192.168.1.3 100.1.1.2 #将192.168.1.3整个服务器映射出去 ip nat inside source static tcp 192.168.1.3 80 100.1.1.2 80 #只映射TCP80端口号
4 路由器工作原理归纳完善
- 对由内到内/外的数据帧:
- 路由器内网接口收到数据帧,
- 解封装查看是否目标AMC地址是自己,否则丢弃,
- 查看是否有ACL表对数据过滤,
- 匹配路由表将数据包路由至目标接口,
- 查看是否有ACL表对数据过滤,
- 如果是路由到外网接口则需要查看NAT表是否地址转换,(NAT和ACL哪个先?个人理解应该是NAT更接近外侧,即先ACL再NAT,暂未验证。)
- 封装后发出到下一跳。
- 对由外到内的数据帧:
- 路由器外网接口收到数据帧,
- 解封装查看是否目标AMC地址是自己,否则丢弃,
- 查看NAT表是否地址转换,(NAT和ACL哪个先?个人理解应该是NAT更接近外侧,即先NAT再ACL,暂未验证。)
- 查看是否有ACL表对数据过滤,
- 匹配路由表将数据包路由至目标接口,
- 查看是否有ACL表对数据过滤,
- 封装后发出到下一跳。
5 总结
- 了解IP地址的分类、私有地址有哪些。
- 了解NAT技术应用的背景
- 了解NAT技术的分类,掌握各自的原理。
- 熟悉相关命令。
- 深度理解路由器的工作原理。
-
PTA IP地址转换
2019-01-12 21:02:447-4 IP地址转换 (20 分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出...7-4 IP地址转换 (20 分)
一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:
输入在一行中给出32位二进制字符串。
输出格式:
在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。
输入样例:
11001100100101000001010101110010
输出样例:204.148.21.1147-4 IP地址转换 (20 分)
一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:
输入在一行中给出32位二进制字符串。输出格式:
在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:
11001100100101000001010101110010输出样例:
204.148.21.114#include<stdio.h> #include<math.h> int main() { char a[32]; int i,j,sum[4]={0}; scanf("%s",a); for(j=0;j<4;j++) for(i=7;i>=0;i--) if(a[i+8*j]=='1') sum[j]+=pow(2,7-i); printf("%d.%d.%d.%d",sum[0],sum[1],sum[2],sum[3]); return 0; }
-
IP地址转换--C语言
2021-12-27 08:15:09C语言指针练习题,IP地址,PTA练习题 -
7-3 IP地址转换
2021-12-02 19:56:34请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制... -
internet中用于实现域名和ip地址转换的是什么
2021-07-28 05:41:28internet中用于实现域名和ip地址转换的是DNS。DNS:域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP... -
IP地址转换
2018-03-24 11:06:27请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),... -
7-2 IP地址转换 (15 分)
2021-11-20 08:11:36请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制... -
IP地址转换(C++)
2020-04-14 21:20:48一.IP地址转换1 题目详情 编写程序,将十进制IP地址转换为二进制IP地址。 例如输入:202.117.0.20,输出:11001010011101010000000000010100 输入格式: 字符串形式的十进制点分IP地址。 输出格式: 字符串... -
IP地址转换(c语言)
2021-03-28 17:37:03IP地址转换题目答案 题目 答案 #include<stdio.h> #include<string.h> #include<math.h> int main() { char str[40]; gets(str); int count1=0,count2=0,sum=0,flag=0,n=strlen(str),i; for... -
【牛客网C++服务器项目学习】-Day10-字节序、socket地址结构、IP地址转换函数
2021-12-15 00:06:03项目学习地址:【牛客网C++服务器项目学习】 day10 1.socket socket是介于应用层和传输层的一种对外的接口。socket是网络间主机通信的API,它将传输层及其以下的网络层次都封装了,在应用层通过编写和调用socket... -
ORACLE十进制IP地址转换成正常的IP地址
2021-11-24 09:50:35to_char(mod(trunc(十进制IP /256/ 256/256 ),256)) || '.'|| to_char(mod(trunc(十进制IP/ 256/256 ),256)) || '.'|| to_char(mod(trunc(十进制IP/ 256),256 )) || '.'|| to_char(mod(十进制IP, 256)) -
进制转换 PTA 7-6 IP地址转换
2020-05-26 08:53:347-6 IP地址转换 (20分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在... -
将IP地址转换为整数--将32位的二进制转换为十进制
2022-01-09 11:50:42将字符串类型的IP地址,按照"\\."进行切割 将切割的字符串数组使用map遍历将每个元素转换为整数类型 再使用位运算符计算结果 -
NAT技术配置(内外网IP地址转换)
2021-03-28 22:36:40配置NAT技术(内外网IP地址转换) 一. 什么是NAT? NAT是将IP数据报文头中的IP地址转换成另一个IP地址的过程,主要用于实现内部地址(私有IP地址)访问外部地址(公有IP地址)的功能,NAT转换设备处于内部... -
华为设备配置Easy IP 地址转换
2019-02-03 18:18:352、配置easy IP 地址转换 3、地址映射 实验拓扑: 实验配置: [ar1]int g0/0/0 [ar1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [ar1-GigabitEthernet0/0/0]un shu [ar1]int g0/0/2 [ar1-... -
ARP协议 地址解析协议:IP地址转换为MAC地址
2020-09-28 20:21:12ARP协议能实现任意网络层地址到任意物理地址的转换,我们在此只讨论IP到以太网MAC地址的转换。 工作原理: 主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址,此网络上的的其他机器都将收到这... -
IP地址转换函数
2018-08-07 16:06:10IPv4的socket网络编程中,sockaddr_in中的成员struct in_addr sin-addr 表示32位的IP地址,但是通常我们使用的是点分十进制的字符串表示IP地址,那么这两个如何转换呢? #include<arpa/inet.h> 字符... -
7-4 IP地址转换 (10分)
2020-03-28 17:31:00请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数)... -
ip地址转换htonl的用法
2019-06-13 16:19:11htonl(将32位主机字符顺序转换成网络字符顺序)(用于IP的转换) IP转换为数值 unsigned long StrIpToValue(const char* strIp) { //255.255.255.255 char buf[16] = { 0 }; int nMin = mi... -
将ip地址转换为点分十进制表示
2020-07-04 20:29:36是IPv4的IP地址标识方法。 IPv4中用四个字节表示一个IP地址,每个字节按照十进制表示为0~255。 点分十进制就是用4个从0~255的数字,来表示一个IP地址。 char * my_DotDec(unsigned int ip,char *buffer); 参数说明:... -
7-5 IP地址转换 (20分)
2020-01-28 13:17:32请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数)... -
【PTA 7-2】IP地址转换
2019-02-24 09:33:597-2 IP地址转换 (20 分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出... -
PTA 7-9 IP地址转换
2018-07-22 09:42:447-9IP地址转换(20分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式:... -
7-13 IP地址转换 (6 分)一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的...
2021-12-25 23:45:457-13 IP地址转换 (6 分) 一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: ... -
PTA-IP地址转换
2019-01-29 23:45:54请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入格式: 输入在一行中给出32位二进制字符串。 输出格式: 在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制... -
socket IP地址转换函数
2017-05-07 19:14:56IP地址转换函数 这些天一直在看《UNP》,觉得有必要对一些东西做一下总结(其实只是抄一抄书),加深一下印象。 IP地址转换函数有两组,它们可以在字符串和网络字节序的二进制值之间转换IP地址 适用于... -
将IP地址转换成十进制
2018-08-08 12:35:05//定义一个方法,将ip地址转换成十进制 def ipLongs(ip: String): Long = { val fragments = ip.split("[.]") var ipNum = 0L for (i <- 0 until fragments.length){ ipNum = fragments(i).toLong...