首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

怎么把IP地址的最后一位加1

2013-01-11 
如何把IP地址的最后一位加1我有个ip地址: 192.168.1.100 char ip[16]“192.168.1.100”我想把最后一位加

如何把IP地址的最后一位加1
    我有个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)把主机字节序转成网络字节序

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

热点排行