How do you determine if an IP address is private, in Python?

Jacob Gabrielson picture Jacob Gabrielson · Mar 27, 2009 · Viewed 23.9k times · Source

In Python, what is the best way to determine if an IP address (e.g., '127.0.0.1' or '10.98.76.6') is on a private network? The code does not sound difficult to write. But there may be more edge cases than are immediately apparent, and there's IPv6 support to consider, etc. Is there an existing library that does it?

Answer

Nik Haldimann picture Nik Haldimann · Jun 24, 2015

Since Python 3.3 there is an ipaddress module in the stdlib that you can use.

>>> import ipaddress
>>> ipaddress.ip_address('192.168.0.1').is_private
True

If using Python 2.6 or higher I would strongly recommend to use a backport of this module.