Wireshark is a powerful tool that can analyze traffic between hosts on your network. But it can also be used to help you discover and monitor unknown hosts, pull their IP addresses, and even learn a little about the device itself. Here’s how I use Wireshark to find the IP address of an unknown host on my LAN.
What are Wireshark and IP Addresses?
Wireshark is a network monitor and analyzer. It works below the packet level, capturing individual frames and presenting them to the user for inspection. Using Wireshark, you can watch network traffic in real-time, and look inside to see what data is moving across the wire.
An IP address is a unique identifier used to route traffic on the network layer of the OSI model. If you think of your local network as a neighborhood, a network address is analogous to a house number. When you know the IP address of a host, it’s possible to access and interact with it.
Finding an IP address with Wireshark using ARP requests
Address Resolution Protocol (ARP) requests can be used by Wireshark to get the IP address of an unknown host on your network. ARP is a broadcast request that’s meant to help the client machine map out the entire host network.
ARP is slightly more foolproof than using a DHCP request – which I’ll cover below – because even hosts with a static IP address will generate ARP traffic upon startup.
To pull an IP address of an unknown host via ARP, start Wireshark and begin a session with the Wireshark capture filter set to arp, as shown above.
Then wait for the unknown host to come online. I’m using my cell phone and toggling the WiFi connection on and off. Regardless, when an unknown host comes online it will generate one or more ARP requests. Those are the frames you should look for.
Once you’ve spotted the request, click on it. Use Wireshark’s Packet details view to analyze the frame. Look at the Address resolution protocol section of the frame, especially the Sender IP address and Sender MAC address.
In this case, you can see my phone received an IP address of 192.168.1.182 from the router, and you can identify the device as an Apple phone by looking at the vendor OUI.
Wireshark IP address puller using DHCP requests
Another easy way to determine the IP address of an unknown host on your network is to use DHCP traffic. This method only works if the host requests an IP address.
If you’re dealing with a situation where someone has put a malicious physical network device on your corporate network; this method isn’t recommended – they’ve likely set a static address. But for normal use, it works just as well as ARP.
To capture DHCP traffic, I like to start a new session with no capture filter and set the Wireshark display filter to udp.port==67 as shown above. Then wait for the unknown host to come online and request an IP address from your DHCP server.
You can also force every host on your network to request a new IP address by setting the lease time to an hour or two and capturing network traffic. In this case, you’d want to browse through hostnames until you find the target client.
Note that the frame I captured has a source IP address of 0.0.0.0. This is normal until the host is assigned a valid IP address by the DHCP server.
Click on the captured frame, and look at the Packet details view. Browse until you’ve found the entry for Bootstrap protocol and click the arrow to expand it.
Scroll through the list of options until you find the Requested IP address, which shows what the DHCP server has attempted to assign. In just about every case this correlates to the IP address of the host machine, despite the fact it’s phrased as a request.
You can also find a handful of other useful options like the IP address lease time and Host name of the unknown client requesting an address.
Getting the IP address of an unknown host with Wireshark
Those two methods are sure-fire ways to find the IP address of an unknown host. Depending on your network, there may be others. For instance, sending out a broadcast ping will work in some situations when you share a collision domain with the host. But especially for home networking, where all devices are more or less directly connected to a switch, analyzing ARP and DHCP requests are the best choices for discovering an IP address.
Wireshark IP Puller FAQs
Is it illegal to run Wireshark on a public network?
It isn’t illegal to run Wireshark on a public network. However, pay attention to the Terms and Conditions of the network you want to use Wireshark on. They may prohibit the use of Wireshark, in which case you could be banned from the network or even sued for using it.
How do I view the MAC address of a received packet in Wireshark?
To view all of the MAC addresses in a captured packet stream:
Open a packet capture file in Wireshark
Go to Statistics and then Conversations.
Click on the Ethernet tab.
You will see all of the MAC addresses from the captured packets.
Can you pull OPs with Wireshark over wifi?
Yes. Wireshark can capture packets off of a WiFi network as long as the computer it is installed on has a WiFi transceiver and is in promiscuous mode. Wireshark uses the Airpcap standard for wireless packet capture.
What devices can Wireshark use to capture packets?
Wireshark captures packets through the network interface of the computer that it is installed on. It can run on Windows, Linux, macOS, FreeBSD, OpenBSD, Solaris, and Unix.
How do I trace a specific IP address in Wireshark?
If you only want to see the traffic to and from Wireshark in a trace file, load it into Wireshark and then apply a filter to the packet data. You enter this filter in the bar across the top of the packet display pane where you will see the words Apply a display filter. For example, if you want to trace the activity of 192.168.0.12 you should type in:
ip.addr == 192.168.0.12
This will filter the records in the display panel so that you only see the packet going to or coming from that address.
How do I get the IP address of a hostname in Wireshark?
You don’t need to open up Wireshark to get the IP address of a hostname or a domain. You just need to open a Command Prompt window and type in:
nslookup <hostname>
– type in the name of the host that you want to get the IP address for instead of <hostname>.
If you already have Wireshark open and you want to look in passing packets for the IP address of a known hostname, open a packet stream in Wireshark then enter a display filter. This should be:
ip.host == <hostname>
– give the name of the host instead of <hostname>.