[python3] obtention de l'ip public d'un machine connecté à une box

Le
major_ghz
salut,

je cherche comment obtenir l'ip public de ma machine qui est derrière
une box en python3

pour l'afficher dans un fenêtre GTK+.

cordialement,
MajorGhz.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Encolpe Degoute
Le #25797862
Le 19/11/2013 17:27, major_ghz a écrit :
salut,

je cherche comment obtenir l'ip public de ma machine qui est derrière
une box en python3



IPv4 : aucune ou celle de la box
IPV6 : ça dépend si ton FAI fourni du IPv6. Si oui, RTFM

http://docs.python.org/dev/library/ipaddress
http://pythonhosted.org/netaddr/tutorial_01.html

pour l'afficher dans un fenêtre GTK+.



Pauvre serpent.

--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales
Nicolas
Le #25801502
Le 19/11/2013 17:27, major_ghz a écrit :
salut,

je cherche comment obtenir l'ip public de ma machine qui est derrière
une box en python3



La réponse ici :
http://stackoverflow.com/questions/9481419/how-can-i-get-the-public-ip-using-python2-7

En Python3, ça donne ça :

from urllib.request import urlopen
addr = urlopen('http://ip.42.pl/raw').read()

ou

import json
from urllib.request import urlopen
r = urlopen('http://httpbin.org/ip').read()
addr = json.loads(r.decode())['origin']

Nicolas

pour l'afficher dans un fenêtre GTK+.

cordialement,
MajorGhz.

Tanguy Ortolo
Le #25820292
Nicolas, 2013-11-20 16:37+0100:
En Python3, ça donne ça :

from urllib.request import urlopen
addr = urlopen('http://ip.42.pl/raw').read()



Dommage de dépendre d'un service externe. J'ignore comment mettre cela
en œuvre en Python, mais lorsqu'on est derrière un routeur NAT, il est
possible de lui demander son adresse IP publique avec le protocole UPnP.

--
. o .
. . o Tanguy
o o o
Nicolas
Le #25821392
Le 26/11/2013 16:53, Tanguy Ortolo a écrit :
Nicolas, 2013-11-20 16:37+0100:
En Python3, ça donne ça :

from urllib.request import urlopen
addr = urlopen('http://ip.42.pl/raw').read()



Dommage de dépendre d'un service externe. J'ignore comment mettre cela
en œuvre en Python, mais lorsqu'on est derrière un routeur NAT, il est
possible de lui demander son adresse IP publique avec le protocole UPnP.



Cherche upnp sur pypy :
https://pypi.python.org/pypi?%3Aaction=search&term=upnp&submit=search

Ce résultat à l'air de correspondre à ce que tu cherches :
https://pypi.python.org/pypi/nattraverso/0.1.1

Sinon, peut-être ceci : http://code.google.com/p/miranda-upnp/

Nicolas
major_ghz
Le #25827562
Le Wed, 27 Nov 2013 10:12:46 +0100,
Nicolas
Le 26/11/2013 16:53, Tanguy Ortolo a écrit :
> Nicolas, 2013-11-20 16:37+0100:
>> En Python3, ça donne ça :
>>
>> from urllib.request import urlopen
>> addr = urlopen('http://ip.42.pl/raw').read()
>
> Dommage de dépendre d'un service externe. J'ignore comment mettre
> cela en œuvre en Python, mais lorsqu'on est derrière un route ur
> NAT, il est possible de lui demander son adresse IP publique avec
> le protocole UPnP.
>
Cherche upnp sur pypy :
https://pypi.python.org/pypi?%3Aaction=search&term=upnp&submit=sear ch

Ce résultat à l'air de correspondre à ce que tu cherches :
https://pypi.python.org/pypi/nattraverso/0.1.1

Sinon, peut-être ceci : http://code.google.com/p/miranda-upnp/

Nicolas



J'ai désactivé l'upnp de ma box,
d'ailleurs je me demande si je doit pas débugger mon install d'openwrt
pour gérer un routeur comme je l'entend.

J'arrive pas à ouvrir de port sur ma box du fait de système de po rt
triggering.

major.
major_ghz
Le #25827552
Le Wed, 20 Nov 2013 16:37:01 +0100,
Nicolas
Le 19/11/2013 17:27, major_ghz a écrit :
> salut,
>
> je cherche comment obtenir l'ip public de ma machine qui est
> derrière une box en python3
>
La réponse ici :
http://stackoverflow.com/questions/9481419/how-can-i-get-the-public-ip-us ing-python2-7

En Python3, ça donne ça :

from urllib.request import urlopen
addr = urlopen('http://ip.42.pl/raw').read()



c'est fonctionnel, mais j'ai des souci de présentation :
's ip' au lieux de ip

major
Publicité
Poster une réponse
Anonyme