Trouver des adresses IP à l'aide de Python stdlib

Comment puis-je trouver des adresses IP locales (c'est à dire 192.168.x.x ou 10.0.x.x) en Python plate-forme de manière indépendante et en utilisant uniquement la bibliothèque standard?

L'adresse IP locale? Ou IP publique? Comment allez-vous traiter avec les systèmes avec de multiples adresses ip?
utilisation ifconfig -a et l'utilisation de la sortie à partir de là...
C'est une mauvaise idée. Tout d'abord, vous êtes inutilement la fourche d'un nouveau processus, et qui peut empêcher votre programme de travail dans bien verrouillé configurations (ou, vous aurez à laisser les droits de votre programme n'a pas besoin). Ensuite, vous aurez introduire des bogues pour les utilisateurs de différents paramètres régionaux. Troisièmement, si vous décidez de commencer un nouveau programme à tous, vous ne devriez pas commencer une déconseillé d'une ip addr est beaucoup plus approprié (et plus facile à analyser, le démarrage).
vous avez absolument raison, merci pour la correction de ma bêtise
Un problème plus fondamental ici est que, dans un écrit correctement moderne programme de mise en réseau la droite (ensemble de) adresse IP locale(es) dépend des pairs, ou de l'ensemble du potentiel des pairs. Si l'adresse IP locale est nécessaire pour bind un socket à une interface particulière, c'est une question de politique. Si l'adresse IP locale est nécessaire de le remettre à un de ses pairs, de sorte que les pairs peuvent "call back", c'est à dire d'ouvrir une connexion à l'ordinateur local, puis la situation dépend de s'il y a des NAT (Traduction d'Adresse Réseau) cases entre les deux. Si il n'y a pas NATs, getsocknameest un bon choix.

OriginalL'auteur UnkwnTech | 2008-10-03