> Tech > Rechercher l’adresse IP

Rechercher l’adresse IP

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Quand un utilisateur vous dit à quel ordinateur vous devriez vous connecter, il peut l’exprimer sous deux formes : une adresse IP ou un nom de domaine.

L’adresse IP est généralement constituée d’une suite de quatre nombres, chacun représentant un octet de l’adresse : l’utilisateur sépare les nombres

Rechercher l’adresse IP

par un point. Ce format est appelé adresse Internet, adresse IP ou numéro Internet. Voici un exemple d’une telle adresse IP : 192.168.101.241

Les réseaux n’utilisent pas l’adresse IP dans ce format. Ils veulent que l’adresse soit en format binaire. Celui-ci est constitué de 4 octets, dont chacun contient l’équivalent binaire de l’un des nombres de l’exemple précédent. L’API inet-addr() convertit une adresse IP en son format binaire. Les noms de domaines sont le moyen le plus courant par lequel l’utilisateur fournit une adresse à votre programme. Voici des exemples de noms de domaines :
– ftp.example.com
– iSeriesNetwork.com
– www.google.com

Les noms de domaines sont beaucoup plus faciles à mémoriser que les adresses IP. Mais on a besoin d’une adresse IP pour établir la connexion. Par conséquent, vous devez rechercher l’adresse IP à laquelle un nom de domaine fait référence. Pour cela, vous appelez l’API gethostbyname().

La figure 1 montre un fragment de code qui prend l’entrée d’un utilisateur et la convertit en adresse binaire. Le code commence par utiliser l’API inet_addr() pour essayer de convertir l’entrée provenant d’une adresse IP Internet en adresse binaire (A dans la figure 1). Si cette opération échoue, c’est probablement parce que l’utilisateur a fourni un nom de domaine au lieu d’une adresse IP ; donc, il appelle gethostbyname() pour examiner l’adresse (en B).

Gethostbyname() renvoie *NULL s’il ne peut pas trouver l’hôte, ou il renvoie un pointeur s’il réussit. Le pointeur est dirigé vers une information hôte dans une structure de données nommée hostent. Cette structure de données et le pointeur sur lequel elle est basée sont définis dans le copy book SOCKET_ H. Le champ h_addr fait partie de cette structure de données et contient l’adresse IP, si tout se passe bien (en C).

Gethostbyname() examine l’adresse IP pour un nom de domaine. La façon dont il le fait dépend de la configuration de votre ordinateur. Pour le savoir, émettez la commande Change TCP/IP Domain (CHGTCPDMN) CL, comme dans la figure 2.

Dans cet exemple, la priorité de recherche de Host name a été mise à *LOCAL, comme on le voit dans la figure 2. Cela signifie que gethostbyname() essaie d’abord d’examiner le nom du domaine dans la table d’hôte de votre système. S’il le trouve, il renvoie l’adresse IP qui y est configurée. S’il ne le trouve pas, il adresse une requête au serveur DNS à 192.168.0.1.

Si la priorité de recherche de Host name avait été *REMOTE, gethostbyname() essaierait d’abord DNS et ne se retrouverait sur la table d’hôte que si l’examen de DNS (DNS lookup) échouait.

Téléchargez cette ressource

Préparer l’entreprise à l’IA et aux technologies interconnectées

Préparer l’entreprise à l’IA et aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT