内网的IP地址判断
来源:互联网 发布:设置淘宝全场满38包邮 编辑:程序博客网 时间:2024/06/04 22:32
1 内网的IP地址判断
分布式系统的设计中,经常要判断一个请求是否来自于内外还是外网,如果外网用户使用了内网的请求往往会发生恐怖的事情。
对企业网的IP分配一般以RFC1918中定义的非Internet连接的网络地址,
也称为私有地址。由Internet地址授权机构(IANA)控制的IP地址分配方案中,
留出了三类网络地址,给不连到Internet上的专用网使用。它分别是:
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。
其中的一个私有地址网段是:192.168.0.0是我们在内网IP分配中最常用的网段。IANA保证这些网络号不会分配给连到Internet上的任何网络,因此任何人都可以自由地选择这些网络地址作为自己的私有网络地址。在申请的合法IP不足的情况下,企业网内网可以采用私有IP地址的网络地址分配方案;企业网外网接入、DMZ区使用合法IP地址。
根据这些特性,我们可以在代码中间检查请求的IP地址是否是内网来保证安全。增加了一个函数CheckInternalIP。
//检查是否是内部的IP地址
int QQPetSecurityCheck::CheckInternalIP(const unsigned int ip_addr)
{
//检查3类地址
if ((ip_addr >= 0x0A000000 && ip_addr <= 0x0AFFFFFF ) ||
(ip_addr >= 0xAC100000 && ip_addr <= 0xAC1FFFFF ) ||
(ip_addr >= 0xC0A80000 && ip_addr <= 0xC0A8FFFF )
)
{
return PET_RET::PET_RET_SUCC;
}
ACE_DEBUG((LM_ERROR,"IP[%u|%s] is not a internal IP Address./n",
ip_addr,
zenlib::strntoa(ip_addr)));
return PET_RET::ERROR_INVALID_INTERNAL_IPADDRESS;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fullsail/archive/2008/10/17/3088136.aspx
- 内网的IP地址判断
- 内网的IP地址判断
- 内网的IP地址判断
- 判断IP地址是否为内网IP地址
- 判断IP地址是否为内网IP地址
- 内网的IP地址
- java 判断IP地址是否为内网IP
- 判断IP地址是否在某个指定的网段内
- IP地址的判断
- Java 判断IP地址为内网IP还是公网IP
- 内网IP地址\私有IP地址
- (转)判断一个IP地址是否为内网IP(备忘)
- 内网、外网IP地址
- 内网、外网IP地址
- 内网、外网IP地址
- 判断IP地址的合法性
- 判断IP地址的合法性
- 判断IP是否为内网IP
- MySQL存储过程中的3种循环
- WMS功能要求及其开发计划 -中英文对照
- Android -UriMatcher,ContentUris
- 异常处理机制 --- 异常前言 (二)
- 异常处理机制 --- 相知篇 (三)
- 内网的IP地址判断
- SVN 服务器IP地址更改本机如果更新?
- jxl的API
- JDK ObjectOutputStream的 “内存泄漏” 问题
- ssh整合开发中的分页方案(Srtuts2+Spring+Hibernate)
- mysql使用存储过程循环插入数据
- viso
- 用JAVA实现排序算法之四:快速排序
- “0d 0a”这两个字符是什么涵义