get-my-ip.py: Remove nesting setup/
[swc-setup-get-my-ip.git] / 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     s = _socket.socket(_socket.AF_INET, _socket.SOCK_DGRAM)
11     try:
12         s.connect((host, port))
13         return s.getsockname()[0]
14     finally:
15         s.close()
16
17
18 if __name__ == '__main__':
19     import argparse as _argparse
20
21     parser = _argparse.ArgumentParser(description=__doc__)
22     parser.add_argument(
23         'host', default='software-carpentry.org', nargs='?')
24     parser.add_argument(
25         'port', default=80, type=int, nargs='?')
26
27     args = parser.parse_args()
28
29     print(get_my_ip(host=args.host, port=args.port))