算法:得到2个IP之间所有的有效IP(192.168.1.11和193.111.2.254)

如题!!如能给出具体算法最好!!
感谢~~

3个回答

这个问题关键在于将IP转化为长整型。
[code="java"] /**
* 字符串ip转换为long
* @param 字符串ip
* @return
*/
public static long getStringIpToLong(String ip) {

String[] ips = ip.split("[.]");

long num = 16777216L*Long.parseLong(ips[0]) + 65536L*Long.parseLong(ips[1]) + 256*Long.parseLong(ips[2]) + Long.parseLong(ips[3]);

return num;

}

[/code]

这个问题不只是算法,而且网络IP知识的一应用。

参看:http://zhidao.baidu.com/question/130627677.html

首先,你必须了解 IP的基础知识。即每个值,不能大于255

其次,你必须清楚(192.168.1.11 和193.111.2.254)这个区段中,有一部分是保留IP,应该不是你想要的“有效IP”

192.168.0.0 - 192.168.255.555 为保留IP

所以你的区段,可以缩小为:

192.169.0.0 - 193.111.2.254

然后,就可以计算了吧

立即提问
相关内容推荐