В XFCE има едно много хубаво нещо при аплетите за панела, наречено Generic Monitor.
Та бях му казал, на 5 минути да изпълнява curl ipv4.icanhazip.com и ми връщаше в чист текст единствено външното IP. И си стои в панела. Много хубаво тогава ми стана, като го открих това нещо. Ама като пък не съм свързан, излизаше нещо, дето един път само успях да го възпроизведа в терминала сам. Но пък го снимах.
http://prntscr.com/7hiz4yИ като ми излезеше така, това се разтегля до средата на панела. Грозна работа.
Та ето първото нещо дето сътворих на Pyrhon. Някой програмист да каже, може ли да му се оптимизира и къде съм писал прекалено. Изобщо, как би трябвало да е. Предаването на параметри малко ми покачи температурата в главата, но вече всичко е наред.
Излъгах, първото беше "Hello, World!"
Интересува ме най-вече последните два реда. Дали така написано, ще може да се използва и като модул?
#!/usr/bin/env python
# Get and print the external IP.
def get_ext_ip(*args):
"""Returns the external IP.
IPv4 only? I don't know. :-D
Default server: ipv4.icanhazip.com"""
import urllib
if len(args) == 2 and (args[1] == '-h' or args[1] == '--help'):
print """
Returns external IP.
Usage:
extip.py [server address (default: ipv4.icanhazip.com)]
extip.py [-h] [--help]
\t\tPrints this help and exit.
Other posible servers:
\thttp://checkip.amazonaws.com/
\thttp://wtfismyip.com
\thttp://checkip.dyndns.com/
\thttp://ipecho.net/plain
\thttp://ifconfig.me
\thttp://smart-ip.net/myip
\thttp://www.telize.com/ip
"""
exit(0)
## If server is given
if len(args) == 2:
url = args[1]
else:
# Default: ipv4.icanhazip.com
url = "http://ipv4.icanhazip.com"
try:
# Attempting to connect
ext_ip = urllib.urlopen(url)
ip = ext_ip.read()
#ext_ip = urllib.urlretrieve(url)
ext_ip.close()
except:
ip = 'localhost'
print "%s" % ip
return ip
def main(*argv):
import sys
if sys.argv:
if len(sys.argv) == 2:
server = sys.argv[1]
else:
server = None
get_ext_ip(server)
if __name__ == '__main__':
main()