Routine de recherche du Hostname par l'adresse IP

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Routine de recherche du Hostname par l'adresse IP

Message par GallyHC »

Bonjour tous,

Voici une petite routine pour donner le HostName par une adresse IP. Fonctionne seulement sur Windows. La procédure StringConvert_memory() sert a la conversion du formatage d'une chaine en mémoire. Pour que le code soit compatible en Ascii et Unicode.

Code : Tout sélectionner

; +======================================================+
; |   ROUTINE DE RECHERCHE DU HOSTNAME PAR ADRESSE IP.   |
; +------------------------------------------------------+
; | COPYRIGHT(C)2007-2008, ALL RIGHT RESERVED KOAKDESIGN |
; +--------------+---------------------------------------+
; | Program type | PUREBASIC 4.40                        |
; +--------------+---------------------------------------+
; | VER & REV    | 0.0.1                                 |
; +--------------+---------------------------------------+
; | Program name | main.pbi                              |
; +======================================================+

; +======================================================+
; | Original Version: 0.0.1                              |
; +--------------+---------------------------------------+
; | Created by   | GallyHomeCorp                         |
; | Graphix by   |                                       |
; +--------------+---------------------------------------+
; | Comments:    |                                       |
; +--------------+                                       |
; |                                                      |
; |                                                      |
; |                                                      |
; +======================================================+

; +======================================================+
; | Système d'Exploitation                               |
; +--------------+---------------------------------------+
; | Window       | Oui                                   |
; | Linux        | NON                                   |
; | MacOS        | NON                                   |
; +======================================================+

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

EnableExplicit

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

InitNetwork()

#AF_INET      = 2
#SOCKET_ERROR = -1

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Procedure.i StringConvert_memory(stext.s, format.l = #PB_Unicode)
; ROUTINE DE CONVERTION MUTI-FORMAT.
  Define *mem
  Define result.s

  *mem = AllocateMemory(StringByteLength(stext, format)+2)
  PokeS(*mem, stext, -1, format)
  ProcedureReturn *mem

EndProcedure

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Procedure.s GetHostNameFromIP(sadress.s)
; ROUTINE DE RECHERCHE DU HOSTNAME.
  Protected lhadress.l
  Protected high.b = 1
  Protected low.b = 1 
  Protected wsaversion.w
  Protected wsa.WSAData
  Protected *host.HOSTENT

  PokeB (@wsaversion, high)
  PokeB (@wsaversion + 1, low)
  If WSAStartup_ (wsaversion, wsa) = #NOERROR
    lhadress = inet_addr_(StringConvert_memory(sadress, #PB_Ascii))
    If lhadress <> #SOCKET_ERROR
      If sadress <> "0.0.0.0" And sadress <> ""
        *host = gethostbyaddr_(@lhadress, 4, #AF_INET)
        If *host <> 0
          ProcedureReturn PeekS(*host\h_name, -1, #PB_Ascii)          
        EndIf
      EndIf
    EndIf
    WSACleanup_ ()
  EndIf
  ProcedureReturn ""

EndProcedure

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Debug GetHostNameFromIP("127.0.0.1")
J'ai aussi mis le code sur mon site a l'adresse "http://koakdesign.info/news/?url=4d&val=34"

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Routine de recherche du Hostname par l'adresse IP

Message par Kwai chang caine »

Merci GallyHC 8)
Le resultat est LOCALHOST chez moi, je suppose que c'est normal :roll:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Routine de recherche du Hostname par l'adresse IP

Message par GallyHC »

bonjour,

Avec l'adresse IP "127.0.0.1" il est normal d'avoir LocalHost :). sinon tu peux tester en indiquant l'adresse IP de ton poste local (surement en 192.168.x.x).

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Routine de recherche du Hostname par l'adresse IP

Message par Kwai chang caine »

Mais quel c....quel c... 8O
Des fois je m’épate tellement à repousser mes limites de jour en jours :oops:

Ca marche nickel....merci beaucoup GallyHC
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
gildev
Messages : 380
Inscription : mar. 19/juin/2007 10:28
Localisation : Picardie (France)

Re: Routine de recherche du Hostname par l'adresse IP

Message par gildev »

Impressionnant. Un grand merci car ça va me servir.
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Routine de recherche du Hostname par l'adresse IP

Message par GallyHC »

Bonjour,

En fait c'est juste une adaptation d'un code en VB6, Je converti des code en fonction de mes besoins et je partage après.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Routine de recherche du Hostname par l'adresse IP

Message par Ar-S »

Testé avec l'adresse allouée pour ma box et ça fonctionne :D
Image
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Routine de recherche du Hostname par l'adresse IP

Message par flaith »

C'est, en fait, un nslookup :)
Sinon sympa le code, merci du partage :D
Mais si tu as une adresse virtuelle (genre VirtualBox ou VMWare), tu as dans ce cas de figure plusieurs adresses IP, plus compliqué à gérer mais le résultat reste le même donc Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Routine de recherche du Hostname par l'adresse IP

Message par Kwai chang caine »

C'est, en fait, un nslookup :)
C'est dingue ce qu'en informatique y'a toujours une expression pour chaque chose 8O
On dirait le domaine du médical.... :?
Comment vous faites pour connaitre tous ces gros mots ???? :roll:
Et surtout pour pouvoir les sortir au bon moment 8O

Dire que j'en apprend tous les jours, c'est faire part d'un doux euphémisme....
Dire que je le retiendrais....serait faire part d'un doux optimisme....

Tiens ce soir j'essaierais de l'utiliser avant de l'oublier :D
Chérie.....tu peut me passer le NSLOOKUP s'il te plait :mrgreen:

En tout cas merci FLAITH 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Routine de recherche du Hostname par l'adresse IP

Message par Backup »

Kwai chang caine a écrit :
C'est, en fait, un nslookup :)
C'est dingue ce qu'en informatique y'a toujours une expression pour chaque chose 8O

c'est une commande !! :roll:

ouvre l'invite de commande , et tape nslookup
(ou menu demarrer /executer : tape nslookup )

tu couchera moins bete ;)
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Routine de recherche du Hostname par l'adresse IP

Message par flaith »

Exact Dobro merci, et de rien KCC, merci aussi à toi ;)

petite info sur la commande : nslookup
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Routine de recherche du Hostname par l'adresse IP

Message par Kwai chang caine »

Bon d'accord..c'est vrai si c'est une commande normal que ça ai un nom :roll:

Il n’empêche encore une que je connaissais pas.
Y'a peut etre un lexique de tout ce que l'on peut taper dans la zone commande :roll:
Hors mis le DOS bien sur, parce que en fin de compte c'est presque un langage a part entière

En tout cas c'est moins probant que la fonction de GALLYHC
J'ai ça comme réponse avec nslookup seul :

Code : Tout sélectionner

Serveur par dÚfaut :  HSIB.home
Address:  192.168.1.1
Ou ça avec nslookup 192.168.1.3

Code : Tout sélectionner

> nslookup 192.168.1.3
Serveur :  [192.168.1.3]
Address:  192.168.1.3

*** 192.168.1.3 ne parvient pas à trouver nslookup : No response from server
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Re: Routine de recherche du Hostname par l'adresse IP

Message par Droopy »

merci pour ce code :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Routine de recherche du Hostname par l'adresse IP

Message par Backup »

Kwai chang caine a écrit : Y'a peut etre un lexique de tout ce que l'on peut taper dans la zone commande :roll:
regarde là : en bas de page le tableau

http://fr.wikipedia.org/wiki/Nslookup
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Routine de recherche du Hostname par l'adresse IP

Message par Kwai chang caine »

Merci beaucoup DOBRO 8)

Je sais pas si elles sont toutes la...mais ça en fait déjà pas mal :D

Ou est passé le temps ou on s’éclatait, a taper les DIR, RENAME, etc... :roll:
A cette époque, y'avait pas ce frénétique besoin de puissance, toujours plus pour toujours pareil :(

On mettait une journée pour installer un périphérique :D
Ca marchait jamais :D
Qu'est ce que c’était bien 8)

Maintenant, l'informatique est aseptisé....comme toute la société d'ailleurs :?

Encore merci et bonne journée
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre