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地址。

阅读剩余
THE END