動手輸入密碼,可以這樣
專業(yè)成都網(wǎng)站建設公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設,五站合一網(wǎng)站設計制作,服務好的網(wǎng)站設計公司,成都網(wǎng)站設計、網(wǎng)站建設負責任的成都網(wǎng)站制作公司!
runas /user:administrator "arp -d"
~
~
~
需要遍歷局域網(wǎng)IP的,大體分為兩步:
1.得到局域網(wǎng)網(wǎng)段,可由自己機器的IP來確定
2.根據(jù)IP類型,一次遍歷局域網(wǎng)內(nèi)IP地址 給一個JAVA類,編譯之后直接運行便可以得到局域網(wǎng)內(nèi)所有IP,具體怎樣使用自己編寫相應代碼調(diào)用便可 代碼如下:
package bean;
import java.io.*;
import java.util.*;
通過設備開通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;
}
除了上面這種方法,網(wǎng)上還給出了另外兩種方法:
1、通過調(diào)用Linux的busybox命令獲取Mac地址:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* 通過調(diào)用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) {//執(zhí)行命令cmd,只取結果中含有HWaddr的這一行
if(readLine.contains(HWaddr)){
return readLine.substring(readLine.indexOf(HWaddr)+6, readLine.length()-1);
}
}
}catch(Exception e) { //如果因設備不支持busybox工具而發(fā)生異常。
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發(fā)來所有的數(shù)據(jù)包,需要實現(xiàn)網(wǎng)絡嗅探的部分功能:
代碼如下;
/*******************
*?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數(shù)據(jù)報報文頭*/
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地址*/
/*分析協(xié)議類型*/
/**
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("協(xié)議類型?:ARP協(xié)議");
try?{
ARPPacket?arpPacket?=?(ARPPacket)packet;
System.out.println("源網(wǎng)卡MAC地址為?:"+arpPacket.getSenderHardwareAddress());
System.out.println("源IP地址為?:"+arpPacket.getSenderProtocolAddress());
System.out.println("目的網(wǎng)卡MAC地址為?:"+arpPacket.getTargetHardwareAddress());
System.out.println("目的IP地址為?:"+arpPacket.getTargetProtocolAddress());
}?catch(?Exception?e?)?{
e.printStackTrace();
}?
}
else?
if(packet.getClass().equals(UDPPacket.class))
{
System.out.println("協(xié)議類型?:UDP協(xié)議");
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("協(xié)議類型?:TCP協(xié)議");
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("協(xié)議類型?:ICMP協(xié)議");
else
System.out.println("協(xié)議類型?:GGP、EGP、JGP協(xié)議或OSPF協(xié)議或ISO的第4類運輸協(xié)議TP4");
/*IP數(shù)據(jù)報文數(shù)據(jù)*/
byte[]?k=packet.data;???
String?str1="";
System.out.print("數(shù)據(jù)?:?");
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("數(shù)據(jù)報類型?:?"+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?{
/*本地網(wǎng)絡信息*/
byte[]?b=devices[1].mac_address;?//網(wǎng)卡物理地址
//}
//catch()?{}
System.out.print("網(wǎng)卡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("網(wǎng)卡MAC?:?"+Integer.toHexString(a));
for(int?n=0;nk.length;n++)?{
System.out.println("本機IP地址?:?"+k[n].address);?????//本機IP地址
System.out.println("子網(wǎng)掩碼???:?"+k[n].subnet);??????//子網(wǎng)掩碼
}
System.out.println("網(wǎng)絡連接類型?:?"+devices[1].datalink_description);
//}
NetworkInterface?deviceName?=?devices[1];
/*將網(wǎng)卡設為混雜模式下用網(wǎng)絡設備deviceName*/
JpcapCaptor?jpcap?=JpcapCaptor.openDevice(deviceName,?2000,?false,?1);???????????//openDevice(deviceName,1028,false,1);
jpcap.loopPacket(-1,new?JpcapTip());
}
}
文章標題:arpjava代碼,arpeja
路徑分享:http://chinadenli.net/article32/dsshipc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、營銷型網(wǎng)站建設、搜索引擎優(yōu)化、標簽優(yōu)化、App設計、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)