get-my-ip.py: Add a script for getting your public IP address
[swc-setup-get-my-ip.git] / setup / get-my-ip.py
1 #!/usr/bin/env python
2
3 """Get your public IP address from a UDP socket connection
4 """
5
6 import socket as _socket
7
8
9 def get_my_ip(host, port=80):
10     with _socket.socket(_socket.AF_INET, _socket.SOCK_DGRAM) as s:
11         s.connect((host, port))
12         return s.getsockname()[0]
13
14
15 if __name__ == '__main__':
16     import argparse as _argparse
17
18     parser = _argparse.ArgumentParser(description=__doc__)
19     parser.add_argument(
20         'host', default='software-carpentry.org', nargs='?')
21     parser.add_argument(
22         'port', default=80, type=int, nargs='?')
23
24     args = parser.parse_args()
25
26     print(get_my_ip(host=args.host, port=args.port))