当前位置:  技术问答>linux和unix

如何把IP地址的最后一位加1

    来源: 互联网  发布时间:2017-03-26

    本文导语:      我有个ip地址: 192.168.1.100 ;  char ip[16]=“192.168.1.100”; 我想把最后一位加1 变成 192.168.1.101;  请问在代码中怎么实现? | 字节序问题  ipp += 0x01000000 | 网络字节序是...

    我有个ip地址: 192.168.1.100 ; 
char ip[16]=“192.168.1.100”;
我想把最后一位加1 变成 192.168.1.101; 
请问在代码中怎么实现?

|
字节序问题
 ipp += 0x01000000

|
网络字节序是big endian,intel处理器是little endian,所以192.168.1.100 inet_addr后在处理器看来 就是0x6401A8C0,正好是倒过来的

比较正规的做法是你在ipp+=1之前先调用uint32_t ntohl(uint32_t netlong)把网络字节序转化成主机字节序,在ipp+=1之后调用inet_ntoa之前,再调用uint32_t htonl(uint32_t hostlong)把主机字节序转成网络字节序

这样就无所谓任何处理器都不会出错了

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,