
代码如下:
import javanetInetAddress;
import javanetNetworkInterface;
import javanetSocketException;
import javanetUnknownHostException;
/
物理地址是48位,别和ipv6搞错了
/
public class LOCALMAC {
/
@param args
@throws UnknownHostException
@throws SocketException
/
public static void main(String[] args) throws UnknownHostException, SocketException {
// TODO Auto-generated method stub
//得到IP,输出PC-201309011313/1222067383
InetAddress ia = InetAddressgetLocalHost();
Systemoutprintln(ia);
getLocalMac(ia);
}
private static void getLocalMac(InetAddress ia) throws SocketException {
// TODO Auto-generated method stub
//获取网卡,获取地址
byte[] mac = NetworkInterfacegetByInetAddress(ia)getHardwareAddress();
Systemoutprintln("mac数组长度:"+maclength);
StringBuffer sb = new StringBuffer("");
for(int i=0; i<maclength; i++) {
if(i!=0) {
sbappend("-");
}
//字节转换为整数
int temp = mac[i]&0xff;
String str = IntegertoHexString(temp);
Systemoutprintln("每8位:"+str);
if(strlength()==1) {
sbappend("0"+str);
}else {
sbappend(str);
}
}
Systemoutprintln("本机MAC地址:"+sbtoString()toUpperCase());
}
}
1得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)
2根据IP类型,一次遍历局域网内IP地址
JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可
代码如下::
package bean;
import javaio;
import javautil;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30个线程
while(threadCount>30)
Threadsleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
pstart();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddressgetLocalHost();
String hostAddress = hostgetHostAddress();
int k=0;
k=hostAddresslastIndexOf(“”);
String ss = hostAddresssubstring(0,k+1);
for(int i=1;i <=255;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount>0)
Threadsleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ipPingAll();
javautilSet entries = pingentrySet();
Iterator iter=entriesiterator();
String k;
while(iterhasNext()){
MapEntry entry=(MapEntry)iternext();
String key=(String)entrygetKey();
String value=(String)entrygetValue();
if(valueequals(“true”))
Systemoutprintln(key+“-->”+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
thisip=ip;
}
public void run(){
try{
Process p= RuntimegetRuntime()。exec (“ping ”+ip+ “ -w 300 -n 1”);
InputStreamReader ir = new InputStreamReader(pgetInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i <7; i++)
inputreadLine();
String line= inputreadLine();
if (linelength() <17 || linesubstring(8,17)。equals(“timed out”))
pingput(ip,“false”);
else
pingput(ip,“true”);
//线程结束
threadCount -= 1;
}catch (IOException e){}
}
}
}
import javanetInetAddress;
import javanetNetworkInterface;
import javanetSocketException;
import javanetUnknownHostException;
/
物理地址是48位,别和ipv6搞错了
/
public class LOCALMAC {
/
@param args
@throws UnknownHostException
@throws SocketException
/
public static void main(String[] args) throws UnknownHostException, SocketException {
// TODO Auto-generated method stub
//得到IP,输出PC-201309011313/1222067383
InetAddress ia = InetAddressgetLocalHost();
Systemoutprintln(ia);
getLocalMac(ia);
}
private static void getLocalMac(InetAddress ia) throws SocketException {
// TODO Auto-generated method stub
//获取网卡,获取地址
byte[] mac = NetworkInterfacegetByInetAddress(ia)getHardwareAddress();
Systemoutprintln("mac数组长度:"+maclength);
StringBuffer sb = new StringBuffer("");
for(int i=0; i<maclength; i++) {
if(i!=0) {
sbappend("-");
}
//字节转换为整数
int temp = mac[i]&0xff;
String str = IntegertoHexString(temp);
Systemoutprintln("每8位:"+str);
if(strlength()==1) {
sbappend("0"+str);
}else {
sbappend(str);
}
}
Systemoutprintln("本机MAC地址:"+sbtoString()toUpperCase());
}
}
1得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)
2根据IP类型,一次遍历局域网内IP地址
JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可
代码如下::
package bean;
import javaio;
import javautil;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30个线程
while(threadCount>30)
Threadsleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
pstart();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddressgetLocalHost();
String hostAddress = hostgetHostAddress();
int k=0;
k=hostAddresslastIndexOf("");
String ss = hostAddresssubstring(0,k+1);
for(int i=1;i <=255;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount>0)
Threadsleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ipPingAll();
javautilSet entries = pingentrySet();
Iterator iter=entriesiterator();
String k;
while(iterhasNext()){
MapEntry entry=(MapEntry)iternext();
String key=(String)entrygetKey();
String value=(String)entrygetValue();
if(valueequals("true"))
Systemoutprintln(key+"-->"+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
thisip=ip;
}
public void run(){
try{
Process p= RuntimegetRuntime()exec ("ping "+ip+ " -w 300 -n 1");
InputStreamReader ir = new InputStreamReader(pgetInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i <7; i++)
inputreadLine();
String line= inputreadLine();
if (linelength() <17 || linesubstring(8,17)equals("timed out"))
pingput(ip,"false");
else
pingput(ip,"true");
//线程结束
threadCount -= 1;
}catch (IOException e){}
}
}
}
以上就是关于Java web 怎么得到客户端的Mac地址全部的内容,包括:Java web 怎么得到客户端的Mac地址、局域网在线扫描 IP,MAC Java源代码、Java web 怎么得到客户端的 Mac 地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)