java 广播地址,根据ip地址跟子网掩码获取广播地址的java实现
根據ip地址和子網掩碼獲取廣播地址的java實現
/**
* 獲取廣播地址
* */
public static String getBroadcastAddress(String subnet, String ip) {
String[] ips = ip.split("\\.");
String[] subnets = subnet.split("\\.");
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ips.length; i++) {
ips[i] = String.valueOf((~Integer.parseInt(subnets[i]))
| (Integer.parseInt(ips[i])));
sb.append(turnToStr(Integer.parseInt(ips[i])));
if (i != (ips.length - 1))
sb.append(".");
}
return turnToIp(sb.toString());
}
private static String turnToStr(int num) {
String str = "";
str = Integer.toBinaryString(num);
int len = 8 - str.length();
for (int i = 0; i < len; i++) {
str = "0" + str;
}
if (len < 0)
str = str.substring(24, 32);
return str;
}
/**
* 轉換成Str
* */
private static String turnToIp(String str) {
String[] ips = str.split("\\.");
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ips.length; i++) {
sb.append(turnToInt(ips[i]));
sb.append(".");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
/**
* 轉換成int
* */
private static int turnToInt(String str) {
int total = 0;
int top = str.length();
for (int i = 0; i < str.length(); i++) {
String h = String.valueOf(str.charAt(i));
top--;
total += ((int) Math.pow(2, top)) * (Integer.parseInt(h));
}
return total;
}
總結
以上是生活随笔為你收集整理的java 广播地址,根据ip地址跟子网掩码获取广播地址的java实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 命令执行脚本文件路径,php命令
- 下一篇: java 构造函数抛出异常,构造函数抛出