tutorial socket real programming examples example python sockets

programming - real python socket



¿Cómo obtengo la IP externa de un socket en Python? (6)

Esto no es posible sin la cooperación de un servidor externo, ya que podría haber cualquier número de NAT entre usted y la otra computadora. Si se trata de un protocolo personalizado, puede pedirle al otro sistema que informe a qué dirección está conectado.

Cuando llamo socket.getsockname() en un objeto socket, devuelve una tupla de la IP interna de la máquina y el puerto. Sin embargo, me gustaría recuperar mi IP externa. ¿Cuál es la forma más económica y eficiente de hacer esto?


La única forma en que puedo pensar que está garantizado es dándote un servicio como http://whatismyip.com/ para obtenerlo.


toma de importación

s = socket.socket (socket.AF_INET, socket.SOCK_STREAM)

s.connect (("msn.com", 80))

s.getsockname ()


Usando la dirección sugerida en la fuente de http://whatismyip.com

import urllib def get_my_ip_address(): whatismyip = ''http://www.whatismyip.com/automation/n09230945.asp'' return urllib.urlopen(whatismyip).readlines()[0]


https://github.com/bobeirasa/mini-scripts/blob/master/externalip.py

'''''' Finds your external IP address '''''' import urllib import re def get_ip(): group = re.compile(u''(?P<ip>/d+/./d+/./d+/./d+)'').search(urllib.URLopener().open(''http://jsonip.com/'').read()).groupdict() return group[''ip''] if __name__ == ''__main__'': print get_ip()


print (urllib.urlopen(''http://automation.whatismyip.com/n09230945.asp'').read())