arpjava代码,arpeja

写一个java程序,在程序里调用DOS ,以管理员身份运行“arp -d”这命令,求代码???

动手输入密码,可以这样

专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联公司为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,成都网站设计、网站建设负责任的成都网站制作公司!

runas /user:administrator "arp -d"

~

~

~

如何用java获得局域网内所有ip?最好用arp方法,ping的太慢

需要遍历局域网IP的,大体分为两步:

1.得到局域网网段,可由自己机器的IP来确定

2.根据IP类型,一次遍历局域网内IP地址 给一个JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用自己编写相应代码调用便可 代码如下:

package bean;

import java.io.*;

import java.util.*;

如何使用Java代码获取Android和ios移动终端Mac地址

通过设备开通WiFi连接获取Mac地址是最可取的,代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

/**

* 设备开通WiFi连接,通过wifiManager获取Mac地址

*

* @author 高焕杰

*/

public static String getMacFromWifi(Context context){

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

State wifiState = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();

if(wifiState == NetworkInfo.State.CONNECTED){//判断当前是否使用wifi连接

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

if (!wifiManager.isWifiEnabled()) { //如果当前wifi不可用

wifiManager.setWifiEnabled(true);

}

WifiInfo wifiInfo = wifiManager.getConnectionInfo();

return wifiInfo.getMacAddress();

}

return null;

}

除了上面这种方法,网上还给出了另外两种方法:

1、通过调用Linux的busybox命令获取Mac地址:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

/**

* 通过调用Linux的busybox命令获取Mac地址

*

* @author 高焕杰

*/

private static String getMacFromCallCmd(){

try {

String readLine = ;

Process process = Runtime.getRuntime().exec(busybox ifconfig);

BufferedReader bufferedReader = new BufferedReader (new InputStreamReader(process.getInputStream()));

while ((readLine = bufferedReader.readLine ()) != null) {//执行命令cmd,只取结果中含有HWaddr的这一行

if(readLine.contains(HWaddr)){

return readLine.substring(readLine.indexOf(HWaddr)+6, readLine.length()-1);

}

}

}catch(Exception e) { //如果因设备不支持busybox工具而发生异常。

e.printStackTrace();

}

return null;

}

注意:这种方法在Android Pad中可以准确获取到的Mac地址,但是在Android手机中无法准确获取到。

2、通过查询记录了MAC地址的文件(文件路径:“/proc/net/arp”)获取Mac地址:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

/**

* 通过查询记录了MAC地址的文件(文件路径:“/proc/net/arp”)获取Mac地址

*

* @author 高焕杰

*/

private static String getMacFromFile(Context context){

String readLine =;

BufferedReader bufferedReader = null;

try {

bufferedReader = new BufferedReader(new FileReader(new File(/proc/net/arp)));

int rollIndex = 0;

while((readLine = bufferedReader.readLine())!=null){

if(rollIndex == 1){

break;

}

rollIndex = rollIndex + 1;

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (bufferedReader != null) {

try {

bufferedReader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

if(readLine !=null readLine.length()1){

String[] subReadLineArray = readLine.split( );

int rollIndex = 1;

for(int i = 0; i subReadLineArray.length; ++i){

if(!TextUtils.isEmpty(subReadLineArray[i])){

if(rollIndex == 4){

return subReadLineArray[i];

}

rollIndex = rollIndex + 1;

}

}

}

return null;

}

注意:无论在Android Pad中还是在Android手机中,这种方法都无法准确获取到Mac地址。

java如何编程实现,获取固定IP发来所有的数据包 ?

java获取固定IP发来所有的数据包,需要实现网络嗅探的部分功能:

代码如下;

/*******************

* JpcapTip.java

*/

package m;

import jpcap.PacketReceiver;

import jpcap.JpcapCaptor;

import jpcap.packet.*;

import jpcap.NetworkInterface;

import jpcap.NetworkInterfaceAddress;

//import java.net.InetAddress;

//import java.net.UnknownHostException;

public class JpcapTip implements PacketReceiver {

public void receivePacket(Packet packet) {

System.out.println("********************************************");

/*IP数据报报文头*/

byte[] l=packet.header;     

/*

for (int t=0;t21;t++){

System.out.print(l[t]+" *** ");

}

*/

String str="";

System.out.print("报文头 : ");

for (int i=0;il.length;i++) {

//str=str+l;

int m=0;

m=l[i];

m=m24;

m=m24;

str=str+Integer.toHexString(m);

//System.out.print("     ***     "+l[i]);

}

System.out.println(str);

int d=l.length;

System.out.println("首部长度 :"+(d*8)+"bit");

/*分析源IP地址和目的IP地址*/

/*分析协议类型*/

/**

if(packet.getClass().equals(IPPacket.class)) {

IPPacket ipPacket=(IPPacket)packet;

byte[] iph=ipPacket.option;

String iphstr=new String(iph);

System.out.println(iphstr);

}

*/

if(packet.getClass().equals(ARPPacket.class))

{

System.out.println("协议类型 :ARP协议");

try {

ARPPacket arpPacket = (ARPPacket)packet;

System.out.println("源网卡MAC地址为 :"+arpPacket.getSenderHardwareAddress());

System.out.println("源IP地址为 :"+arpPacket.getSenderProtocolAddress());

System.out.println("目的网卡MAC地址为 :"+arpPacket.getTargetHardwareAddress());

System.out.println("目的IP地址为 :"+arpPacket.getTargetProtocolAddress());

} catch( Exception e ) {

e.printStackTrace();

}

else 

if(packet.getClass().equals(UDPPacket.class))

{

System.out.println("协议类型 :UDP协议");

try {

UDPPacket udpPacket = (UDPPacket)packet;

System.out.println("源IP地址为 :"+udpPacket.src_ip);

int tport = udpPacket.src_port;

System.out.println("源端口为:"+tport);

System.out.println("目的IP地址为 :"+udpPacket.dst_ip);

int lport = udpPacket.dst_port;

System.out.println("目的端口为:"+lport);

} catch( Exception e ) {

e.printStackTrace();

}

else

if(packet.getClass().equals(TCPPacket.class)) {

System.out.println("协议类型 :TCP协议");

try {

TCPPacket tcpPacket = (TCPPacket)packet;

int tport = tcpPacket.src_port;

System.out.println("源IP地址为 :"+tcpPacket.src_ip);

System.out.println("源端口为:"+tport);

System.out.println("目的IP地址为 :"+tcpPacket.dst_ip);

int lport = tcpPacket.dst_port;

System.out.println("目的端口为:"+lport);

} catch( Exception e ) {

e.printStackTrace();

}

}

else

if(packet.getClass().equals(ICMPPacket.class))

System.out.println("协议类型 :ICMP协议");

else

System.out.println("协议类型 :GGP、EGP、JGP协议或OSPF协议或ISO的第4类运输协议TP4");

/*IP数据报文数据*/

byte[] k=packet.data;   

String str1="";

System.out.print("数据 : ");

for(int i=0;ik.length;i++) {

//int m=0;

//m=k[i];

//m=m24;

//m=m24;

//str1=str+Integer.toHexString(m);

str1 = new String(k);

//str1=str1+k[i];

//System.out.print("     ***     "+k[i]);

}

System.out.println(str1);

System.out.println("数据报类型 : "+packet.getClass());

System.out.println("********************************************");

}

public static void main(String[] args) throws Exception{

// TODO 自动生成方法存根

NetworkInterface[] devices = JpcapCaptor.getDeviceList();        //.getDeviceList();.

//for (int i =0; idevices.length;i++) {

int a=0;

//try {

/*本地网络信息*/

byte[] b=devices[1].mac_address; //网卡物理地址

//}

//catch() {}

System.out.print("网卡MAC : 00");   

for (int j=0;jb.length;j++){

//a=a8;

a=b[j];

a=a24;

a=a24;

System.out.print(Integer.toHexString(a));

}

System.out.println();

NetworkInterfaceAddress[] k=devices[1].addresses;

//System.out.println("网卡MAC : "+Integer.toHexString(a));

for(int n=0;nk.length;n++) {

System.out.println("本机IP地址 : "+k[n].address);     //本机IP地址

System.out.println("子网掩码   : "+k[n].subnet);      //子网掩码

}

System.out.println("网络连接类型 : "+devices[1].datalink_description);

//}

NetworkInterface deviceName = devices[1];

/*将网卡设为混杂模式下用网络设备deviceName*/

JpcapCaptor jpcap =JpcapCaptor.openDevice(deviceName, 2000, false, 1);           //openDevice(deviceName,1028,false,1);

jpcap.loopPacket(-1,new JpcapTip());

}

}


本文名称:arpjava代码,arpeja
当前URL:http://ybzwz.com/article/dsshipc.html