怎么使用java 查看IP,应该怎么写呢?
调用了那些类的那些方法?
java 查看IP
答案:1 悬赏:80 手机版
解决时间 2021-06-01 23:33
- 提问者网友:愿为果
- 2021-06-01 08:24
最佳答案
- 五星知识达人网友:人類模型
- 2021-06-01 09:54
if(arg.length<1){
System.out.println("请输入主机名或者IP地址!");
return;}
for(int i=0;i<arg.length;i++){
try{
System.out.println("解析主机:"+arg[i]);
System.out.println("主机名:"+toHost(arg[i]));
System.out.println("IP地址:"+toIP(arg[i]));
System.out.println("广播地址:"+toBroadcast(arg[i]));
} catch(Exception e){
System.out.println(arg[i]+":不能解析主机!");}
System.out.println("");
}
}
static String toHost(String addr) throws UnknownHostException{
return InetAddress.getByName(addr).getHostName();}
static String toIP(String addr) throws UnknownHostException{
return InetAddress.getByName(addr).getHostAddress();}
static String toBroadcast(String addr) throws UnknownHostException{
int[] cvtIP=byteToInt(InetAddress.getByName(addr).getAddress());
int offset;
for(offset=7;offset>0;offset--){
if((cvtIP[0]&(1<<offset))==0)
break;
}
offset=8-offset;
for(int i=offset;i<cvtIP.length;i++)
cvtIP[i]=BROADCAST;
return toDottedDecimal(cvtIP);
}
static String toDottedDecimal(int[] ip){
String str=new String();
for(int i=0;i<ip.length;i++)
str=str+(i<1?Integer.toString(ip[i]):"."+Integer.toString(ip[i]));
return str;}
static int[] byteToInt(byte[] b){
int[] buff=new int[b.length];
for(int i=0;i<buff.length;i++)
buff[i]=b[i]&SIGN_MASK;
return buff;
}
System.out.println("请输入主机名或者IP地址!");
return;}
for(int i=0;i<arg.length;i++){
try{
System.out.println("解析主机:"+arg[i]);
System.out.println("主机名:"+toHost(arg[i]));
System.out.println("IP地址:"+toIP(arg[i]));
System.out.println("广播地址:"+toBroadcast(arg[i]));
} catch(Exception e){
System.out.println(arg[i]+":不能解析主机!");}
System.out.println("");
}
}
static String toHost(String addr) throws UnknownHostException{
return InetAddress.getByName(addr).getHostName();}
static String toIP(String addr) throws UnknownHostException{
return InetAddress.getByName(addr).getHostAddress();}
static String toBroadcast(String addr) throws UnknownHostException{
int[] cvtIP=byteToInt(InetAddress.getByName(addr).getAddress());
int offset;
for(offset=7;offset>0;offset--){
if((cvtIP[0]&(1<<offset))==0)
break;
}
offset=8-offset;
for(int i=offset;i<cvtIP.length;i++)
cvtIP[i]=BROADCAST;
return toDottedDecimal(cvtIP);
}
static String toDottedDecimal(int[] ip){
String str=new String();
for(int i=0;i<ip.length;i++)
str=str+(i<1?Integer.toString(ip[i]):"."+Integer.toString(ip[i]));
return str;}
static int[] byteToInt(byte[] b){
int[] buff=new int[b.length];
for(int i=0;i<buff.length;i++)
buff[i]=b[i]&SIGN_MASK;
return buff;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯