MAC Address is a Unique identification of a Device. Computer, Mobile, Tablet, PC all have a Unique MAC Address. If you want to know about MAC Address here is some, MAC on Wiki. MAC Address is generally 48 bits long eg, 00:ff:a3:f0:76:ae
Here we are going to discuss about How to get that address by using supplied IP Address over the network.
Here is the Java Code
GetMACAddress.java
E:\>javac GetMACAddress.java
E:\>java GetMACAddress 192.168.174.94
0:21:97:8f:1b:a7:
E:\>
This is How you can get a MAC address from any machines from your Network/LAN.
Here we are going to discuss about How to get that address by using supplied IP Address over the network.
Here is the Java Code
GetMACAddress.java
import java.net.Inet4Address;
import java.net.InetAddress;
import java.util.Arrays;
import jpcap.*;
import jpcap.packet.*;
public class GetMACAddress{
public static byte[] arp(InetAddress ip) throws java.io.IOException{
//find network interface
NetworkInterface[] devices=JpcapCaptor.getDeviceList();
NetworkInterface device=null;
loop: for(NetworkInterface d:devices){
for(NetworkInterfaceAddress addr:d.addresses){
if(!(addr.address instanceof Inet4Address)) continue;
byte[] bip=ip.getAddress();
byte[] subnet=addr.subnet.getAddress();
byte[] bif=addr.address.getAddress();
for(int i=0;i<4;i++){
bip[i]=(byte)(bip[i]&subnet[i]);
bif[i]=(byte)(bif[i]&subnet[i]);
}
if(Arrays.equals(bip,bif)){
device=d;
break loop;
}
}
}
if(device==null)
throw new IllegalArgumentException(ip+" is not a local address");
//open Jpcap
JpcapCaptor captor=JpcapCaptor.openDevice(device,2000,false,3000);
captor.setFilter("arp",true);
JpcapSender sender=captor.getJpcapSenderInstance();
InetAddress srcip=null;
for(NetworkInterfaceAddress addr:device.addresses)
if(addr.address instanceof Inet4Address){
srcip=addr.address;
break;
}
byte[] broadcast=new byte[]{(byte)255,(byte)255,(byte)255,(byte)255,(byte)255,(byte)255};
ARPPacket arp=new ARPPacket();
arp.hardtype=ARPPacket.HARDTYPE_ETHER;
arp.prototype=ARPPacket.PROTOTYPE_IP;
arp.operation=ARPPacket.ARP_REQUEST;
arp.hlen=6;
arp.plen=4;
arp.sender_hardaddr=device.mac_address;
arp.sender_protoaddr=srcip.getAddress();
arp.target_hardaddr=broadcast;
arp.target_protoaddr=ip.getAddress();
EthernetPacket ether=new EthernetPacket();
ether.frametype=EthernetPacket.ETHERTYPE_ARP;
ether.src_mac=device.mac_address;
ether.dst_mac=broadcast;
arp.datalink=ether;
sender.sendPacket(arp);
while(true){
ARPPacket p=(ARPPacket)captor.getPacket();
if(p==null){
throw new IllegalArgumentException(ip+" is not a local address");
}
if(Arrays.equals(p.target_protoaddr,srcip.getAddress())){
return p.sender_hardaddr;
}
}
}
public static void main(String[] args) throws Exception{
if(args.length<1){
System.out.println("Usage: java GetMACAddress <ip address>");
}else{
byte[] mac=GetMACAddress.arp(InetAddress.getByName(args[0]));
for (byte b : mac)
System.out.print(Integer.toHexString(b&0xff) + ":");
System.out.println();
System.exit(0);
}
}
}
To run this you need to get a library called WinPCap from winpcap.org for Windows or LibPCap for Linux. And more over you need to get a Java Library JPCap from Click Here .
If you have both these Library installed on your system then you can compile and run.
E:\>javac GetMACAddress.java
E:\>java GetMACAddress 192.168.174.94
0:21:97:8f:1b:a7:
E:\>
This is How you can get a MAC address from any machines from your Network/LAN.
I love this!! Definitely will be keeping this idea in mind!
ReplyDeleteDOT NET Training in Chennai
Dot Net Training in Velachery
Dot Net Training in Adyar
Html5 Training in Chennai
Html5 Courses in Chennai
Dot Net Training in OMR
Dot Net Training in Porur
Great Article
DeleteAndroid Final Year Project Ideas for Computer Science
FInal Year Project Centers in Chennai
JavaScript Training in Chennai
Java Training in Chennai
Thank you for sharing such kind of precious information with us.It really useful for many of them like me.
ReplyDeleteSoftware Testing Training in Chennai
Software testing training in T Nagar
JAVA Training in Chennai
Python Training in Chennai
Hadoop Training in Chennai
Selenium Training in Chennai
Software Testing Training in Chennai
Software testing Training in Velachery
This is really a valuable post... The info shared is helpful and valuable. Thank you for sharing.
ReplyDeleteaviation training in Chennai
air hostess academy in Chennai
Airline Courses in Chennai
Ground staff training in Chennai
Aviation Academy in Chennai
air hostess training in Chennai
airport management courses in Chennai
ground staff training in Chennai
This was an awesome blog. The way the author has delivered the content is really simple and easy to understand. Waiting for more updates.
ReplyDeleteGerman Classes in Mulund
German Classes in Mulund West
French Classes in Mulund West
French Language Classes in Mulund
Spoken English Class in Chennai
Spoken English in Chennai
IELTS Coaching Centre in Chennai
English Speaking Course in Mumbai
IELTS Coaching in Mumbai
ReplyDeleteThanks to the admin you have spend a lot for this blog I gained some useful info for you. Keep doing.
microsoft dynamics crm training institutes in chennai
microsoft dynamics training
CCNA Training in Chennai
Salesforce Training in Chennai
gst classes in chennai
microsoft crm training
web designing training in chennai
Tally Course in Chennai
This article is a very interesting and brief explanation about this topic. I eagerly waiting for your next post...
ReplyDeleteSpark Training in Chennai
Spark Training Academy
Oracle Training in Chennai
Excel Training in Chennai
Oracle DBA Training in Chennai
Embedded System Course Chennai
Tableau Training in Chennai
Power BI Training in Chennai
Social Media Marketing Courses in Chennai
english to bengali typing
ReplyDeleteimo for pc
ReplyDeleteimo for pc
ReplyDeleteThe article is so informative. This is more helpful for our
ReplyDeleteBest online software testing training course institute in chennai with placement
Best selenium testing online course training in chennai
Learn best software testing online certification course class in chennai with placement
Thanks for sharing.
Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
ReplyDeletemobile application development training online
mobile app development course
mobile application development course
learn mobile application development
mobile app development training
app development training
mobile application development training
mobile app development course online
online mobile application development
The article is so informative. This is more helpful for our
ReplyDeletesoftware testing training and placement
Best selenium testing online course training in chennai
Best online software testing training course institute in chennai with placement
Magento 2 Developer course training institute in chennai
Thanks for sharing.
thanks for your information really good and very nice web design company in velachery
ReplyDeleteAwesome blog with lots of information. It is really helpful for all.
ReplyDeleteAngularJS Training in Chennai
AngularJS course in Chennai
Angular 6 Training in Chennai
ReactJS Training in Chennai
PHP Training in Chennai
Web Designing course in Chennai
Tally course in Chennai
AngularJS Training in Velachery
AngularJS Training in T Nagar
AngularJS Training in Vadapalani
Great Article. Thank you for sharing! Really an awesome post for every one.
ReplyDeleteProject Centers in Chennai
Java Training in Chennai
Final Year Project Domains for IT
Java Training in Chennai