Last active
June 7, 2017 03:51
-
-
Save hightemp/0e17aaac5c62e1718b2db4934338ec79 to your computer and use it in GitHub Desktop.
[Python] Example of getting public IP-address
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Currently there are several options: | |
ip.42.pl | |
jsonip.com | |
httpbin.org | |
ipify.org | |
Below are exact ways you can utilize each of the above. | |
""" | |
# ip.42.pl | |
from urllib2 import urlopen | |
my_ip = urlopen('http://ip.42.pl/raw').read() | |
This is the first option I have found. It is very convenient for scripts, you don't need JSON parsing here. | |
# jsonip.com | |
from json import load | |
from urllib2 import urlopen | |
my_ip = load(urlopen('http://jsonip.com'))['ip'] | |
Seemingly the sole purpose of this domain is to return IP address in JSON. | |
# httpbin.org | |
from json import load | |
from urllib2 import urlopen | |
my_ip = load(urlopen('http://httpbin.org/ip'))['origin'] | |
httpbin.org is service I often recommend to junior developers to use for testing their scripts / applications. | |
# ipify.org | |
from json import load | |
from urllib2 import urlopen | |
my_ip = load(urlopen('https://api.ipify.org/?format=json'))['ip'] | |
Power of this service results from lack of limits (there is no rate limiting), infrastructure (placed on Heroku, with high availability in mind) and flexibility (works for both IPv4 and IPv6). | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment