> Tech > Rechercher l’adresse IP

Rechercher l’adresse IP

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

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

Microsoft 365 Tenant Resilience

Microsoft 365 Tenant Resilience

Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech