Java之IP、子网掩码、网络号、广播地址之间转换与获取

您所在的位置:网站首页 ipv4广播地址计算 Java之IP、子网掩码、网络号、广播地址之间转换与获取

Java之IP、子网掩码、网络号、广播地址之间转换与获取

2024-02-19 00:07| 来源: 网络整理| 查看: 265

一、判断子网掩码的有效性  子网掩码满足的条件: 是一个合法的IP地址 掩码中的1是连续的 各类地址中掩码的范围(此文中不做判断) Java实现: 1 //掩码是否是连续1判断 2 private boolean IsSubnetMask(String netmask) { 3 String[] masks = netmask.split("\\."); 4 int mask = (Integer.parseInt(masks[0]) = 0 && n >>“的区分  Java实现: 1 //根据IP与掩码获取网络号(环回地址)和广播地址 2 private Map getNetwork(String address, String netmask) { 3 Map map = new HashMap(); 4 String network = new String(); 5 String broadcast = new String(); 6 String[] addresses = address.split("\\."); 7 String[] masks = netmask.split("\\."); 8 for(int i = 0; i < 4; i++) { 9 int opmasksegement = ~Integer.parseInt(masks[i]) & 0xFF; 10        //此处有坑,正常的int有32位,如果此数没有32位的话,就会用0填充前面的数,从而导致取反0的部分会用1来填充,用上述方法可以获取想要的部分 11 int netsegment = Integer.parseInt(addresses[i]) & Integer.parseInt(masks[i]); 12 network = network + String.valueOf(netsegment) + "."; 13 broadcast = broadcast + String.valueOf(opmasksegement | netsegment) + "."; 14 } 15 map.put("network", network.substring(0, network.length() - 1)); 16 map.put("broadcast", broadcast.substring(0, broadcast.length() - 1)); 17 return map; 18 }   三、判断IP是否在某个网段中

将IP与掩码相与,如果其与网络号相同,则返回true

1 //判断IP是否在某个网段内 2 private boolean isInRange(String ip, String netmask, String network) { 3 String[] ips = ip.split("\\."); 4 int ipAddr = (Integer.parseInt(ips[0])


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3