-  isInNet 在Javascript 中的实现
 发布时间:2011-04-18 类别:javascript技术 来源:侠客工作室
- 
              - 1
- 2
- 3
- 4
- 5
 
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>isInNet 在Javascript 中 的实现</title>
 <script>
 //isInNet 实际上也是javascript 函数,但是只能在 .pac 文件中使用,用于动态设置代理服务器
 //而我想在一般的网页中使用,找了半天没找到,只能自己写。- //实现javascript 中判断某个IP 是否在某个网段内部。也就是说,判断某个IP是否在特地的IP范围内 
 //alert(isInNet("169.163.177.255","169.163.177.0",24));
 //ipMask 表示子网掩码中 1 的个数。24 表示 255.255.255.0- //ipMask can be 1-31 
 function isInNet(ipToCheck,ipRangeFrom,ipMask)
 {
 var ipNumbers = Math.pow(2,(32-ipMask));
 var lngFrom = ip2long(ipRangeFrom);
 var lngTo = lngFrom + ipNumbers-1;
 return isInNetByNumber(ipToCheck, lngFrom ,lngTo );
 }
 function isInNetByRange(ipToCheck,ipRangeFrom,ipRangeTo)
 {
 var lngToCheck = ip2long(ipToCheck);
 var lngFrom = ip2long(ipRangeFrom);
 var lngTo = ip2long(ipRangeTo);
 return isInNetByNumber(ipToCheck,lngFrom,ipTo);
 }- function isInNetByNumber(ipToCheck,lngFrom,lngTo) 
 {
 var lngToCheck = ip2long(ipToCheck);
 return (lngToCheck>=lngFrom && lngToCheck<=lngTo);
 }- function ip2long( ip_address ) 
 {
 var output = false;
 if ( ip_address.match ( /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/ ) )
 {
 var parts = ip_address.split ( ‘.‘ );
 var output = 0;- output = ( parts [ 0 ] * Math.pow ( 256, 3 ) ) + 
 ( parts [ 1 ] * Math.pow ( 256, 2 ) ) +
 ( parts [ 2 ] * Math.pow ( 256, 1 ) ) +
 ( parts [ 3 ] * Math.pow ( 256, 0 ) );
 }
 
 return output;
 }- function long2ip( proper_address ) 
 {
 var output = false;- if ( !isNaN ( proper_address ) && ( proper_address >= 0 || proper_address <= 4294967295 ) ) { 
 output = Math.floor (proper_address / Math.pow ( 256, 3 ) ) + ‘.‘ +
 Math.floor ( ( proper_address % Math.pow ( 256, 3 ) ) / Math.pow ( 256, 2 ) ) + ‘.‘ +
 Math.floor ( ( ( proper_address % Math.pow ( 256, 3 ) ) % Math.pow ( 256, 2 ) ) / Math.pow ( 256, 1 ) ) + ‘.‘ +
 Math.floor ( ( ( ( proper_address % Math.pow ( 256, 3 ) ) % Math.pow ( 256, 2 ) ) % Math.pow ( 256, 1 ) ) / Math.pow ( 256, 0 ) );
 }- return output; 
 }
 alert(isInNet("169.163.176.255","169.163.177.0",24));
 </script>
 </head>- <body> 
 </body>
 </html>
- ☆☆☆技术交流群:5684178☆☆☆
- 上一篇:javascript中获取中英文字符长度问题
- 下一篇:JS随机整数的函数




 中搜索:
中搜索: 中搜索:
中搜索: 中搜索:
中搜索: 中搜索:
中搜索: 中搜索:
中搜索: 中搜索:
中搜索: