Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
major_ghz
salut,

je cherche comment obtenir l'ip public de ma machine qui est derri=C3=A8re
une box en python3

pour l'afficher dans un fen=C3=AAtre GTK+.

cordialement,
MajorGhz.

6 réponses

Avatar
Encolpe Degoute
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
Avatar
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-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.

Avatar
Tanguy Ortolo
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
Avatar
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 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
Avatar
major_ghz
Le Wed, 27 Nov 2013 10:12:46 +0100,
Nicolas a écrit :

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.
Avatar
major_ghz
Le Wed, 20 Nov 2013 16:37:01 +0100,
Nicolas a écrit :

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