Adresse IP sous Delphi

Adresse IP sous Delphi - Programmation

Marsh Posté le 08-03-2002 à 13:19:56    

Hello !
Je vais me lancer dans le développement d'un serveur ftp sous Delphi. En fait avant de me lancer je fais 2-3 essais...  
Pour l'instant, j'essai de récuperer dans mon programme l'adresse ip attribué par mon provider. Et là, ca coince !
J'ai bien vu a quelque part comment trouver l'adresse de la machine, mais celle attribuée par le provider...  :heink:  
Alors si quelqu'un à une suggestion ou idée... ou exemple  :D  
Bref, merci...

Reply

Marsh Posté le 08-03-2002 à 13:19:56   

Reply

Marsh Posté le 08-03-2002 à 14:09:01    

Allez lachez vous ! Toute idée sera la bienvenue !
La maison ne reculera devant aucun sacrifice  :D  
Meme une suggestion "foireuse" peut trouver sa place...

Reply

Marsh Posté le 08-03-2002 à 15:00:39    

j'ai ça en stock:
 

Code :
  1. function TXMLSocket.GetLocalAddress: string;
  2. var
  3.   wsaData: TWSAData;
  4.   p: PHostEnt;
  5.   s: array[0..128] of char;
  6.   p2: PChar;
  7. begin
  8.   if WSAStartup(MAKEWORD(1,1), wsaData) = 0 then
  9.   begin
  10.     GetHostName(@s, 128);
  11.     p := GetHostByName(@s);
  12.     p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
  13.     result := p2;
  14.     WSACleanup;
  15.   end else
  16.     result := '';
  17. end;


 
Je sais pas si ça te conviens...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-03-2002 à 15:10:14    

antp a écrit a écrit :

j'ai ça en stock:
 

Code :
  1. function TXMLSocket.GetLocalAddress: string;
  2. var
  3.   wsaData: TWSAData;
  4.   p: PHostEnt;
  5.   s: array[0..128] of char;
  6.   p2: PChar;
  7. begin
  8.   if WSAStartup(MAKEWORD(1,1), wsaData) = 0 then
  9.   begin
  10.     GetHostName(@s, 128);
  11.     p := GetHostByName(@s);
  12.     p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
  13.     result := p2;
  14.     WSACleanup;
  15.   end else
  16.     result := '';
  17. end;


 
Je sais pas si ça te conviens...  




 
Salut antp !
Pour ma culture, quel est l'intéret du @ ligne 10~11 ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 08-03-2002 à 15:28:40    

la fonction veut un pointeur vers une chaîne de caractère de type C (donc tableau de char)
Le @ donne l'adresse de la variable
En C la variable aurait deja été une adresse, en Pascal non.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-03-2002 à 15:46:38    

antp a écrit a écrit :

j'ai ça en stock:
 

Code :
  1. function TXMLSocket.GetLocalAddress: string;
  2. var
  3.   wsaData: TWSAData;
  4.   p: PHostEnt;
  5.   s: array[0..128] of char;
  6.   p2: PChar;
  7. begin
  8.   if WSAStartup(MAKEWORD(1,1), wsaData) = 0 then
  9.   begin
  10.     GetHostName(@s, 128);
  11.     p := GetHostByName(@s);
  12.     p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
  13.     result := p2;
  14.     WSACleanup;
  15.   end else
  16.     result := '';
  17. end;


 
 
 
TU ES UN CHEF !!!  :jap:  
 
C nickel ! Merci :D  
 
Je sais pas si ça te conviens...  



Reply

Marsh Posté le 08-03-2002 à 16:03:18    

:lol:  
En fait j'avais pas repèré...
Mais ça c pour récupérer l'adresse locale de ta machine.
Ca je l'avais déja fait. Dailleurs ta version est beaucoup plus simple que la mienne donc j'adopte...
Cependant, moi ce que je veux, c récupérer l'adresse que le provider t'attribue... genre avec connexion adsl, modem, etc...

Reply

Marsh Posté le 08-03-2002 à 17:40:11    

bhen c'est la même chose :??:
si c'est l'adresse qu'a le routeur/modem je pense pas que ce soit possible...

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-03-2002 à 17:50:14    

antp a écrit a écrit :

bhen c'est la même chose :??:
si c'est l'adresse qu'a le routeur/modem je pense pas que ce soit possible...  




 
Disons que ça doit l'être, certaines applics le font... A moins quelle n'interroge un truc externe....
Style les clients de mise à jour d'ip pour dyndns, dns2go, etc... le font...
En tout cas c pô évident... :crazy:

Reply

Marsh Posté le 08-03-2002 à 17:56:53    

les client dns font à mon avis pas comme ça :
ça envoie une requète de mise à jour et sur le site ça update l'adresse avec $remote_adrr ou enfin + élaborré si on passe par un proxi et tt je pense.

Reply

Marsh Posté le 08-03-2002 à 17:56:53   

Reply

Marsh Posté le 08-03-2002 à 18:06:10    

:heink:  
mouais c bien possible....
Bon...ben j'ai plus qu'a faire un site alors...
Merci en tout ca...  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed