首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么比较两个ip地址的大小

2012-03-07 
如何比较两个ip地址的大小如strings1,s2s1192.168.0.2s2192.168.1.2应该是s2 s1该怎么比较呢谢谢了

如何比较两个ip地址的大小

string   s1,s2;
s1=192.168.0.2;
s2=192.168.1.2;

应该是s2> s1;

该怎么比较呢

谢谢了
给点代码就更好了

[解决办法]
自己实现的话可以按照这个思路来罗:
首先把字符串按照“.”分割成四个子串,然后对这四个子串使用atoi得到对应的值,分别记为i1,i2,i3,i4然后做如下运算ipval=i1*255*255*255+i2*255*255+i3*255+i4;
然后用分别得到的ipval来比较大小即可
[解决办法]
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib ")

inet_addr(str1.c_str())
inet_addr(str2.c_str())
[解决办法]
也可以将点分的每个数字都取出来比较,不过要定义若干变量

sscanf(str1.c_str(), "%d.%d.%d.%d ",x,y,z,r);
[解决办法]
可以先按wanfustudio(雁南飞:知识之败,慕虚名而不务潜修也)
的方法,将字符变成ULONG类型。
高低字节序可以可以用ntohl(或htonl) 进行转换嘛。

热点排行