Skip to main content

A class which sends an ARP Request to know if a host is online on local networks

Project description

General

ArpRequest is a Python module designed to make an ARP gratuitous request to know if a host is online. It acts on OSI model’s level 2 unlike icmp echo (ping), so, you can use it without IP configuration, or to “ping” an host in other IP network. However, you can only use it on local networks.

Usage

>>> from arprequest import ArpRequest
>>> ar = ArpRequest('10.0.0.1', 'eth0')
>>> ar.request()
True
>>> ar2 = ArpRequest('10.0.0.123', 'eth0') # 10.0.0.123 doesen't exist
>>> ar2.request()
False

Changelog

0.3 :

  • You can now select type of ARP request. This is done with “arp_type” argument of ArpRequest class. You can use arprequest.ARP_GRATUITOUS to make an ARP Gratuitous request (what is currently done) or use arprequest.ARP_STANDARD to do a standard ARP request.

    This option was created to use this library with systems which are configured to block Arp Gratuitous.

Constraints

  • ArpRequest work only on unix or unix-like platforms because it uses unix signals.

  • ArpRequest work only as root, because it uses raw sockets.

  • Module is commented in french. I will translate comments in english, some day…

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page