输入IP,子网掩码位数,输出该IP所属的网络号
来源:互联网 发布:美容上门服务软件 编辑:程序博客网 时间:2024/06/03 17:19
package com.ruijie.train.exercise;
/*输入IP,子网掩码位数,输出该IP所属的网络号*/
public class IPMask {
private String ips;
private StringBuffer masks = new StringBuffer();
private int masknum ;
public IPMask(String ips,int masknum) {
this.ips = ips;
this.masknum = masknum;
}
/* 求网络号 */
private String getNetNumber() {
String[] ip = getIps().split("\\.");
String[] mask = getMasks().toString().split("\\.");
int iptemp = 0;
int masktemp = 0;
String temp = "";
String netNumber = "";
for (int i = 0; i <= getMasknum() / 8; i++) {
iptemp = Integer.parseInt(ip[i]);
masktemp = Integer.parseInt(mask[i]);
temp = String.valueOf(iptemp & masktemp);
if (i != 3) {
netNumber += temp + ".";
}
else {
netNumber += "0";
}
}
while(netNumber.split("\\.").length<= 3){
netNumber += "" + 0;
}
return netNumber;
}
/* 求子网掩码 */
private String findMask() {
String mask = "255";
int i = getMasknum() % 8;
int j = getMasknum() / 8;
for (; j > 0; j--) {
getMasks().append(mask +".");
}
String temp = "";
int lastsum = 0;
int lasttemp = 1;
int k = i;
for (; i > 0; i--) {
temp += "1";
}
for (; k < 8; k++) {
temp += "0";
}
lastsum = Integer.parseInt(temp,2);
/*二进制转十进制
for (i = 0; i < temp.length(); i++) {
if (String.valueOf(temp.charAt(i)).equals("1")) {
lasttemp = 1;
for (j = 8 - i; j > 1; j--) {
lasttemp *= 2;
}
lastsum += lasttemp;
}
}*/
getMasks().append(lastsum +".");
while(getMasks().toString().split("\\.").length<= 3){
getMasks().append("." + 0);
}
return getMasks().toString() ;
}
public static void main(String[] args) {
String ips = "192.168.54.159";
int masknum = 20;
IPMask ipmask = new IPMask(ips,masknum);
System.out.println("ip为"+ips+",子网掩码长度为" + masknum + ",子网掩码为" + ipmask.findMask());
System.out.println("网络号为" + ipmask.getNetNumber());
}
public String getIps() {
return ips;
}
public void setIps(String ips) {
this.ips = ips;
}
public StringBuffer getMasks() {
return masks;
}
public void setMasks(StringBuffer masks) {
this.masks = masks;
}
public int getMasknum() {
return masknum;
}
public void setMasknum(int masknum) {
this.masknum = masknum;
}
}
/*输入IP,子网掩码位数,输出该IP所属的网络号*/
public class IPMask {
private String ips;
private StringBuffer masks = new StringBuffer();
private int masknum ;
public IPMask(String ips,int masknum) {
this.ips = ips;
this.masknum = masknum;
}
/* 求网络号 */
private String getNetNumber() {
String[] ip = getIps().split("\\.");
String[] mask = getMasks().toString().split("\\.");
int iptemp = 0;
int masktemp = 0;
String temp = "";
String netNumber = "";
for (int i = 0; i <= getMasknum() / 8; i++) {
iptemp = Integer.parseInt(ip[i]);
masktemp = Integer.parseInt(mask[i]);
temp = String.valueOf(iptemp & masktemp);
if (i != 3) {
netNumber += temp + ".";
}
else {
netNumber += "0";
}
}
while(netNumber.split("\\.").length<= 3){
netNumber += "" + 0;
}
return netNumber;
}
/* 求子网掩码 */
private String findMask() {
String mask = "255";
int i = getMasknum() % 8;
int j = getMasknum() / 8;
for (; j > 0; j--) {
getMasks().append(mask +".");
}
String temp = "";
int lastsum = 0;
int lasttemp = 1;
int k = i;
for (; i > 0; i--) {
temp += "1";
}
for (; k < 8; k++) {
temp += "0";
}
lastsum = Integer.parseInt(temp,2);
/*二进制转十进制
for (i = 0; i < temp.length(); i++) {
if (String.valueOf(temp.charAt(i)).equals("1")) {
lasttemp = 1;
for (j = 8 - i; j > 1; j--) {
lasttemp *= 2;
}
lastsum += lasttemp;
}
}*/
getMasks().append(lastsum +".");
while(getMasks().toString().split("\\.").length<= 3){
getMasks().append("." + 0);
}
return getMasks().toString() ;
}
public static void main(String[] args) {
String ips = "192.168.54.159";
int masknum = 20;
IPMask ipmask = new IPMask(ips,masknum);
System.out.println("ip为"+ips+",子网掩码长度为" + masknum + ",子网掩码为" + ipmask.findMask());
System.out.println("网络号为" + ipmask.getNetNumber());
}
public String getIps() {
return ips;
}
public void setIps(String ips) {
this.ips = ips;
}
public StringBuffer getMasks() {
return masks;
}
public void setMasks(StringBuffer masks) {
this.masks = masks;
}
public int getMasknum() {
return masknum;
}
public void setMasknum(int masknum) {
this.masknum = masknum;
}
}
- 输入IP,子网掩码位数,输出该IP所属的网络号
- 网络号,IP,子网掩码之间的关系
- ip地址、子网掩码、网络号
- ip数据库可查询该IP所属的区域
- IP地址的分类,及子网掩码,网络号,主机号
- IP、子网掩码、网络号之间的关系、区分和运算
- IP、子网掩码、网络号之间的关系、区分和运算
- [Python]根据ip地址计算子网掩码位数
- 判断输入的Ip地址和子网掩码是否正确
- 子网掩码、IP地址、网络号、网络位、主机地址范围
- IP 子网掩码
- IP、子网掩码
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- 子网掩码、ip地址、主机号、网络号、网络地址、广播地址
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- 分享一个MD5加密java工具类
- 我的第一篇博文
- 黑马程序员--JAVA<API>--String
- 树的存储
- VS2010 The project file ' ' has been renamed or is no longer in the solution
- 输入IP,子网掩码位数,输出该IP所属的网络号
- C#中ListView用法详解
- 数据库的事务隔离级别和锁
- 让大蛇(Python)帮你找工作 之增强版
- python函数嵌套
- 学习总结LINQ
- [每日一题] OCP1z0-047 :2013-08-14 如何理解USING INDEX?...................................41
- vi 编辑器基本使用
- HDU 1505 & POJ 1964 City Game (递推+扫描法)