Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Is there a way to know who is pinging my PC on my network. Is it possible to monitor all ICMP packets , how can i do that ?

share|improve this question

3 Answers 3

up vote 13 down vote accepted

Yes that is possible using tcpdump , which is a most powerful and widely used command-line packets sniffer or package analyzer tool available on linux.

In Terminal of the computer you want to minitor :

sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo

Options:

-n avoid a (potentially slow) reverse DNS query
−i interface
icmp[icmptype]=icmp-echo    To print all ICMP packets that are echo requests/replies

The it will start listening on ethX and waiting for arrived packets.

Example : I have 2 pc win7 10.1.1.8 , Ubuntu 10.1.1.57 which will monitor packets arrived :

enter image description here

On ubuntu :

enter image description here

Reference : This Site

share|improve this answer
    
Small correction: -n shows IP instead of DNS names, not MAC address. So running with -n avoid a (potentially slow) reverse DNS query. –  Rmano Mar 6 at 18:23

Good workout @nux I liked it .

I also would like to add my trick I use to find who's pinging me by using avahi tool (can be installed from Synaptic).

When I run in terminal avahi-browse -rat , it automatically compiles full list of connections for example:

hostname = [xxx-xxx.local]
address = [xxx::x:xxx:xxx:xxx:xxx] physical
address = [xx.xx.xxx.xx] ipv4 or ipv6
port = [xxx]
txt = [xxx]

For example , I can always see when my Internet provider is pinging me during my session, when I run this command .

To see everything avahi can do , Run :

avahi-browse --help 
share|improve this answer
    
i would like simple solutions without installing any package , but its okay –  nux Mar 6 at 12:54
    
yes I agree it depends on everyone's desire but this tool has more functions not only pinging it allows discovering services and hosts etc –  JohnnyEnglish Mar 6 at 13:00

This package must simply be installed (if you don't have it):

sudo apt-get install iptables-persistent

Then add this command to the /etc/iptables/rules.v4 file:

-A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix "LOG_IPTABLES_PING_REQUEST: "

To check who pings you , just check the log file:

grep 'LOG_IPTABLES_PING_REQUEST: ' /var/log/messages

You can also use a monitoring applications such as Wireshark.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.