检测某个IP是否属于某个网段范围
生活随笔
收集整理的這篇文章主要介紹了
检测某个IP是否属于某个网段范围
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
<!-- lang: java --> package codinginterview.search;public class IpSeeker {/*驗證IP是否屬于某個IP段* * ipSection IP段(以'-'分隔)* ip 所驗證的IP號碼* */public static boolean ipExistsInRange(String ip,String ipSection) {ipSection = ipSection.trim();ip = ip.trim();int idx = ipSection.indexOf('-');String beginIP = ipSection.substring(0, idx);String endIP = ipSection.substring(idx + 1);return getIp2long(beginIP)<=getIp2long(ip) &&getIp2long(ip)<=getIp2long(endIP);}public static long getIp2long(String ip) {ip = ip.trim();String[] ips = ip.split("\\.");long ip2long = 0L;for (int i = 0; i < 4; ++i) {ip2long = ip2long << 8 | Integer.parseInt(ips[i]);}return ip2long;}public static long getIp2long2(String ip) {ip = ip.trim();String[] ips = ip.split("\\.");long ip1 = Integer.parseInt(ips[0]);long ip2 = Integer.parseInt(ips[1]);long ip3 = Integer.parseInt(ips[2]);long ip4 = Integer.parseInt(ips[3]);long ip2long =1L* ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4;return ip2long;} public static void main(String[] args){//10.8.2.7 是否屬于固定格式的IP段 9.2.3.100-10.8.3.1String ip="10.8.2.7";String ipSection="9.2.3.100-10.8.3.1";boolean exists=ipExistsInRange(ip,ipSection);System.out.println(exists);System.out.println(getIp2long(ip));System.out.println(getIp2long2(ip));}}轉載于:https://my.oschina.net/mingdongcheng/blog/157402
總結
以上是生活随笔為你收集整理的检测某个IP是否属于某个网段范围的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑马程序员_java异常处理机制
- 下一篇: 【AaronYang风格】第一篇 Cod