Connexion à la socket sans connaître l'adresse IP?

Je me demandais si je pouvais me connecter à une socket sans connaître l'adresse IP du serveur, voir l'exemple:

Serveur:

from socket import *

s = socket(AF_INET, SOCK_STREAM)
s.bind(("", 8080))
s.listen(1)

conn, addr = s.accept()

EDIT: Cela a fait l'affaire Comment faire un serveur découvrable pour les clients LAN

0
Voulez-vous dire tout ou simplement tout serveur aléatoire ?
ajouté l'auteur shad0w_wa1k3r, source
Il y a probablement beaucoup de serveurs fonctionnant sur le port 8080 ...
ajouté l'auteur jazzpi, source

3 Réponses

Je ne suis pas sûr de votre objectif, mais normalement pour une socket client TCP, vous avez besoin d'une adresse IP pour le serveur auquel vous souhaitez vous connecter.

Pourquoi voulez-vous éviter de spécifier une adresse IP?

0
ajouté
J'ai mis à jour ma question.
ajouté l'auteur Kava, source

Pour le dire court:

NON

La seule chose que vous pourriez faire serait de passer par toutes les adresses IP (ce qui serait seulement 4228250625 pour IPv4, 274941996890625 pour IPv6) et de vérifier si elles écoutent sur le port 8080. Le problème avec cela est qu'il serait

  • prend énormément de temps et
  • il y a très probablement plus d'un serveur écoutant sur le port 8080.

Donc non.

0
ajouté

Il suffit de passer "" pour le client ...

s = socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("", 8080))

... et vous pourrez vous connecter au serveur.

(De toute évidence, ils doivent tous deux fonctionner sur la même machine pour que cela fonctionne)

0
ajouté
pour la même machine, vous pouvez également dire "localhost"
ajouté l'auteur schwiz, source
Mon objectif est de réaliser ceci avec deux machines différentes.
ajouté l'auteur Kava, source
Si votre objectif est de le faire sur deux machines différentes, vous devez évidemment connaître l'adresse IP du serveur ...
ajouté l'auteur lafuzz, source