2010-05-27 5 views
0

J'ai un domaine sur un fournisseur d'hébergement partagé. Comment puis-je trouver l'adresse IP directe de mon domaine en utilisant Python?Adresse IP du domaine sur l'hôte partagé

Est-il possible d'afficher un script sur mon domaine en utilisant l'adresse IP et non le site lui-même?

Merci.

Répondre

0
  1. Je suppose que l'adresse IP devrait être statique alors avez-vous vraiment besoin de le rechercher plus d'une fois?

  2. Vous devez spécifier le nom de domaine afin que le serveur Web sait quelle configuration hôte à utiliser si vous ne disposez pas d'une adresse IP dédiée ou votre hôte est la valeur par défaut pour ce serveur Web

+0

Comment puis-je spécifier le nom de domaine si j'utilise urllib2: urllib2.urlopen ('101.21.00.01') – Ali

0
import socket 
socket.gethostbyname("www.stackoverflow.com") 
'69.59.196.211' 

vous obtiendrez l'adresse IP (sous forme de chaîne) de votre domaine. Cependant, s'il s'agit d'un hébergement partagé, je pense qu'il est hautement improbable que vous puissiez accéder à votre hébergement via l'ip - probablement vous aurez quelque chose comme Apache's VirtualHost Directive en place qui vous limite à ne voir que des demandes à votre domaine. Les demandes à l'adresse IP seront servies par une configuration par défaut.

Est-ce que dépendra beaucoup de la nature de votre hébergement.

+0

Merci pour le code, mais comment puis-je spécifier quel nom de domaine est la demande? Urllib2 me permettra de spécifier l'adresse IP mais autorise-t-il le nom de domaine? – Ali

0

Une curieuse demande ...

Pour rechercher un nom de domaine, faire quelque chose comme ceci:

import socket 
ipaddress = socket.gethostbyname('www.bbc.co.uk') 

En ce qui concerne l'affichage à l'adresse IP: Je ne pense pas que cela fonctionnerait dans la manière normale (comme d'un navigateur), car il y aura probablement beaucoup de sites détenus sous cette adresse. Mais, je suppose que vous pouvez le faire de manière très manuelle, en utilisant un langage de programmation (par exemple Python), si vous avez connecté un socket client à l'adresse IP du site, mais toujours envoyé le nom du site dans la requête HTTP Host entête.

Je ne sais pas si cela pose plus de questions que de réponses, et je ne sais pas pourquoi vous voudriez faire soit de ce qui précède, mais il est.

Bonne chance!

+0

Merci pour la réponse. Comment puis-je publier le nom de domaine avec l'adresse IP? urllib2.urlopen ('101.21.00.01', nom de domaine)? – Ali

+0

Non, vous ne seriez pas capable de le faire avec urllib. Vous devez utiliser socket.send() pour envoyer un message http entier. Vous devez comprendre à quoi ressemble un POST HTTP dans sa forme brute. Voir http://docs.python.org/library/socket.html et http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23 – laher

+0

Ceci étant dit, je devine que vous essayez simplement de contourner la nécessité d'une recherche DNS, et si possible, je préfèrerais juste l'ajouter comme une entrée dans le fichier 'hosts' de votre ordinateur à la place. http://en.wikipedia.org/wiki/Hosts_file – laher