Avatar billede milo Nybegynder
07. februar 2001 - 10:16 Der er 10 kommentarer og
1 løsning

Finde IP

Hej

Hvordan finder man via Pascal/C++ IP
adressen på en dialup-forbindelse (ADSL)...

:)
Avatar billede borrisholt Novice
07. februar 2001 - 10:28 #1
Det mener jeg socket komponentet kan ..

Jens B
Avatar billede milo Nybegynder
07. februar 2001 - 11:22 #2
ehm ja ku jeg godt selv regne ud...men du fortæller ikke hvordan? Mangler jo ligesom en forklaring på det ik :)
Avatar billede wisen Nybegynder
07. februar 2001 - 12:50 #3
Du må kunne bruge en kombination af \"gethostname\" og \"gethostbyname\"....
Avatar billede scope Nybegynder
07. februar 2001 - 12:56 #4
Det ved jeg ik\'...

Men jeg tror ikke man kan...
Avatar billede wisen Nybegynder
07. februar 2001 - 13:04 #5
The Windows Sockets gethostname function returns the standard host name for the local machine.

int gethostname (char FAR *name, int namelen);

The Windows Sockets gethostbyname function retrieves host information corresponding to a host name from a host database.

struct hostent FAR *gethostbyname (const char FAR *name);

The Windows Sockets hostent structure is used by functions to store information about a given host, such as host name, IP address, and so forth.

Det burde kunne lade sig gøre...

Avatar billede borrisholt Novice
07. februar 2001 - 13:29 #6
milo : Her er lidt pascal kode du kan fornøje dig med :

function GetIpFromHost (HostName: string): string;
const
  HTTP            = \'http://\';
var
  VersionRequested    : Word;
  WSAData            : TWSAData;
  Host                : PHostEnt;
  s                  : array [0..128] of Char;
begin
  if LowerCase (Copy (HostName, 1, Length (HTTP))) = LowerCase (HTTP) then
    Delete (HostName, 1, Length (HTTP));
  VersionRequested := MakeWord (1, 1);
  WSAStartup (VersionRequested, WSAData);
  StrCopy (s, PChar (HostName));
  Host := GetHostByName (@s);
  if Host <> nil then Result := Inet_Ntoa (PInAddr (Host^.h_addr_list^)^)
  else
    Result := \'\';
  WSACleanup;
end;


function GetLocalIp: string;
var
  s : array [0..128] of Char;
begin
  GetHostName (@s, 128);
  Result := GetIpFromHost (string (s));
end;


function GetHostFromIp (IP: string): string;
var
  VersionRequested  : Word;
  WSAData          : TWSAData;
  Addr              : Longint;
  Host              : PHostEnt;
begin
  VersionRequested := MakeWord (1, 1);
  WSAStartup (VersionRequested, WSAData);
  Addr := Inet_Addr (PChar (IP));
  Host := GetHostByAddr (@Addr, SizeOf (Addr), PF_INET);
  if Host <> nil then Result := Host^.h_name
  else
    Result := \'\';
  WSACleanup;
end;


Jens B
Avatar billede milo Nybegynder
07. februar 2001 - 15:23 #7
eg skal bruge den IP som computeren har, rent fysisk... altså dial-up IP man får tildelt vha. DHCP serveren - Min egen dial up forbindelse..

Det I har skrevet, kan kun benyttes til allerede kendte adr...
Avatar billede borrisholt Novice
07. februar 2001 - 15:27 #8
GetLocalIp skulle meget gerne give dig det ...

Jens B
Avatar billede bomber Nybegynder
14. marts 2001 - 14:37 #9
Jeg har set på koden til pascal. Da jeg er nybegynder så har jeg nogle problemer!! Pascal siger at TWSAdata er ukendt. Hvad skal man gøre?
Avatar billede scope Nybegynder
14. marts 2001 - 21:56 #10
Lad mig foreslå dig at oprette et nyt spørgsmål...
Avatar billede milo Nybegynder
03. maj 2001 - 16:10 #11
intet brugbart svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester