求 c# 判断一个IP地址是否为内网IP
解决方案 »
- 请问jquery与js的关系
- 想做个新闻页面,新闻列表不知道用什么组件
- 是不是自带的注册控件不能在asp.net网站管理工具上创建用户的
- |M| 求一条SQL查询语句,表的各种信息
- 再来一道关于DropDownList的趣题,不信邪的都进来!!!
- 求助!!.net 中怎样把HTTP地址栏中的乱码转换成汉字??
- 调用informix出现在的问题
- 用户控件中图片引用的问题,希望大家都来谈谈自己的实现方法,希望大家探讨自己在项目中是怎么运用的,有没有方法可以解决下面的情况的缺
- asp.net (c#)问题,我做了一个文章系统,但是当文章内容特别多的时候会出现错误(我用的是ntext类型),添加的时候用的INSERT语句,是不是
- 问一个关于DataGrid的背景颜色问题
- VSS问题
- 1433 端口 无法连接
私有IP:A类 10.0.0.0-10.255.255.255
B类 172.16.0.0-172.31.255.255
C类 192.168.0.0-192.168.255.255
只要在这之间的IP是内网IP了
string IP = HostInfo.getIP();
获取本机的IP然后和那个IP地址做比较
java 代码 1. public static boolean isInnerIP(String ipAddress){
2. boolean isInnerIp = false;
3. long ipNum = getIpNum(ipAddress);
4. /**
5. 私有IP:A类 10.0.0.0-10.255.255.255
6. B类 172.16.0.0-172.31.255.255
7. C类 192.168.0.0-192.168.255.255
8. 当然,还有127这个网段是环回地址
9. **/
10. long aBegin = getIpNum("10.0.0.0");
11. long aEnd = getIpNum("10.255.255.255");
12. long bBegin = getIpNum("172.16.0.0");
13. long bEnd = getIpNum("172.31.255.255");
14. long cBegin = getIpNum("192.168.0.0");
15. long cEnd = getIpNum("192.168.255.255");
16. isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || ipAddress.equals("127.0.0.1");
17. return isInnerIp;
18. } java 代码 1. private static long getIpNum(String ipAddress) {
2. String [] ip = ipAddress.split("\\.");
3. long a = Integer.parseInt(ip[0]);
4. long b = Integer.parseInt(ip[1]);
5. long c = Integer.parseInt(ip[2]);
6. long d = Integer.parseInt(ip[3]);
7.
8. long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
9. return ipNum;
10. } java 代码 1. private static boolean isInner(long userIp,long begin,long end){
2. return (userIp>=begin) && (userIp<=end);
3. }