java 获取linux ip?linux查看本机ip
请问java如何获取手机mac地址
以windows举例。
运行命令" cmd ipconfig/all"就会出现以下结果
Physical Address.........: 20-CF-30-9A-60-EE
。
java就能过这样的命令来获取。以下是示例。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestMac
{
public static void main(String[] args){
System.out.println("Operation System="+ getOsName());
System.out.println("Mac Address="+ getMACAddress());
System.out.println("通过ip获取mac"+getMACAddress("192.168.1.101"));
}
public static String getOsName(){
String os="";
os= System.getProperty("os.name");
return os;
}
public static String getMACAddress(){
String address="";
String os= getOsName();
if(os.startsWith("Windows")){
try{
String command="cmd.exe/c ipconfig/all";
Process p= Runtime.getRuntime().exec(command);
BufferedReader br= new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line= br.readLine())!= null){
if(line.indexOf("Physical Address")> 0){
int index= line.indexOf(":");
index+= 2;
address= line.substring(index);
break;
}
}
br.close();
return address.trim();
} catch(IOException e){
}
} else if(os.startsWith("Linux")){
String command="/bin/sh-c ifconfig-a";
Process p;
try{
p= Runtime.getRuntime().exec(command);
BufferedReader br= new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line= br.readLine())!= null){
if(line.indexOf("HWaddr")> 0){
int index= line.indexOf("HWaddr")+"HWaddr".length();
address= line.substring(index);
break;
}
}
br.close();
} catch(IOException e){
}
}
address= address.trim();
return address;
}
public static String getMACAddress(String ipAddress){
String str="", strMAC="", macAddress="";
try{
Process pp= Runtime.getRuntime().exec("nbtstat-a"+ ipAddress);
InputStreamReader ir= new InputStreamReader(pp.getInputStream());
LineNumberReader input= new LineNumberReader(ir);
for(int i= 1; i< 100; i++){
str= input.readLine();
if(str!= null){
if(str.indexOf("MAC Address")> 1){
strMAC= str.substring(str.indexOf("MAC Address")+ 14,
str.length());
break;
}
}
}
} catch(IOException ex){
return"Can't Get MAC Address!";
}
//
if(strMAC.length()< 17){
return"Error!";
}
macAddress= strMAC.substring(0, 2)+":"+ strMAC.substring(3, 5)
+":"+ strMAC.substring(6, 8)+":"+ strMAC.substring(9, 11)
+":"+ strMAC.substring(12, 14)+":"
+ strMAC.substring(15, 17);
//
return macAddress;
}
}
剑天梦的回答原理和我这个一样,都是通过Process执行命令。我直接补充到答案里了。不过
我这边运行那个命令出来的结果很多,那么花的时间就长了。优点是能够获取别人的mac地址。
linux获取ip地址命令linux获取ip地址
在Linux/unix系统下怎么查询ip地址?
在Linux/unix系统下查询ip地址可以使用如下的方法
1.如果有图形界面,直接选择网络管理器查看即可
2.使用终端的命令行来获取ip地址输入命令:/sbin/ifconfig。终端中会显示大段网络信息。
如果出现错误信息,提示你缺少管理权限,请输入sudo/sbin/ifconfig。
如果你使用的是Solaris系统或其他Unix版本,你需要输入/sbin/ifconfig-a来显示多个设备的信息
如果你不确定是哪个设备,可以查看最常用的、接入“eth0”端口的设备,也就是系统识别的第一个网络适配器。如果你只想查看“eth0”的信息,请输入ifconfigeth0命令。
java获取linuxip?
代码示例:
/**
*获取Linux下的IP地址
*
*@returnIP地址
*@throwsSocketException
*/
publicstaticStringgetLinuxLocalIp()throwsSocketException{
Stringip="";
try{
for(EnumerationNetworkInterface>en=NetworkInterface.getNetworkInterfaces();
en.hasMoreElements();){
NetworkInterfaceintf=en.nextElement();
Stringname=intf.getName();
if(!name.contains("docker")!name.contains("lo")){
for(EnumerationInetAddress>enumIpAddr=intf.getInetAddresses();
enumIpAddr.hasMoreElements();){
InetAddressinetAddress=enumIpAddr.nextElement();
if(!inetAddress.isLoopbackAddress()){
Stringipaddress=inetAddress.getHostAddress().toString();
if(!ipaddress.contains("::")!ipaddress.contains("0:0:")
!ipaddress.contains("fe80")){
ip=ipaddress;
}
}
}
}
}
}catch(SocketExceptionex){
System.out.println("获取ip地址异常");
ex.printStackTrace();
}
System.out.println("IP:"+ip);
returnip;
}
Linux:怎样获取服务器IP地址?
第一步:激活网卡系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活。
#ifconfigeth0up第二步:设置网卡进入系统时启动想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动。Linux有一点与windows不同的是很多服务默认是停止的,而且你在某次使用该服务时启动这个服务,但是没设置它为默认启动,则下次进入系统这个服务依然是停止的。下面是设置网络服务在系统启动时也启动的方法。使用chkconfig命令让网络服务在系统启动级别是2345时默认启动。#chkconfig--level2345networkon第三步:修改网卡文件ifcfg-eth0修改ifcfg-eth0文件,设置ONBOOT的值为yes,让网络服务启动时使用该网卡。设置BOOTPROTO的值为dhcp,让网卡从DHCP服务器自动获取IP地址。#vi/etc/sysconfig/network-scripts/ifcfg-eth0ONBOOT=yesBOOTPROTO=dhcp总结:通常情况下第三步是最重要的,因为大部分Linux系统默认网络服务是系统启动时也启动的,网卡也是启用的,只要设置好第三步,然后使用下面的命令启动网络服务就OK。#servicenetworkstart配置静态IP地址上网与动态IP地址上网同出一辙,修改ifcfg-eth0,然后用命令servicenetworkretart重启网络服务。DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS=8.8.8.8
BOOTPROTO=static
ONBOOT=yesdebian:编辑/etc/network/interfaces#Theloopbacknetworkinterfaceautoloifaceloinetloopback
#Theprimarynetworkinterface
allow-hotplugeth0autoeth0ifaceeth0inetstatic
address192.168.1.36
netmask255.255.255.0
gateway192.168.1.10#公司的网关是192.168.1.10,一般是192.168.1.1
保存编辑结果,并重启网络服务
java如何获取mac地址
以windows举例。
运行命令" cmd ipconfig/all"就会出现以下结果
Physical Address.........: 20-CF-30-9A-60-EE
。
java就能过这样的命令来获取。以下是示例。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestMac
{
public static void main(String[] args){
System.out.println("Operation System="+ getOsName());
System.out.println("Mac Address="+ getMACAddress());
System.out.println("通过ip获取mac"+getMACAddress("192.168.1.101"));
}
public static String getOsName(){
String os="";
os= System.getProperty("os.name");
return os;
}
public static String getMACAddress(){
String address="";
String os= getOsName();
if(os.startsWith("Windows")){
try{
String command="cmd.exe/c ipconfig/all";
Process p= Runtime.getRuntime().exec(command);
BufferedReader br= new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line= br.readLine())!= null){
if(line.indexOf("Physical Address")> 0){
int index= line.indexOf(":");
index+= 2;
address= line.substring(index);
break;
}
}
br.close();
return address.trim();
} catch(IOException e){
}
} else if(os.startsWith("Linux")){
String command="/bin/sh-c ifconfig-a";
Process p;
try{
p= Runtime.getRuntime().exec(command);
BufferedReader br= new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line= br.readLine())!= null){
if(line.indexOf("HWaddr")> 0){
int index= line.indexOf("HWaddr")+"HWaddr".length();
address= line.substring(index);
break;
}
}
br.close();
} catch(IOException e){
}
}
address= address.trim();
return address;
}
public static String getMACAddress(String ipAddress){
String str="", strMAC="", macAddress="";
try{
Process pp= Runtime.getRuntime().exec("nbtstat-a"+ ipAddress);
InputStreamReader ir= new InputStreamReader(pp.getInputStream());
LineNumberReader input= new LineNumberReader(ir);
for(int i= 1; i< 100; i++){
str= input.readLine();
if(str!= null){
if(str.indexOf("MAC Address")> 1){
strMAC= str.substring(str.indexOf("MAC Address")+ 14,
str.length());
break;
}
}
}
} catch(IOException ex){
return"Can't Get MAC Address!";
}
//
if(strMAC.length()< 17){
return"Error!";
}
macAddress= strMAC.substring(0, 2)+":"+ strMAC.substring(3, 5)
+":"+ strMAC.substring(6, 8)+":"+ strMAC.substring(9, 11)
+":"+ strMAC.substring(12, 14)+":"
+ strMAC.substring(15, 17);
//
return macAddress;
}
}
剑天梦的回答原理和我这个一样,都是通过Process执行命令。我直接补充到答案里了。不过
我这边运行那个命令出来的结果很多,那么花的时间就长了。优点是能够获取别人的mac地址。