[Delphi] localhost probs *

Pagina: 1
Acties:
  • 89 views sinds 30-01-2008

  • Johnny5
  • Registratie: Oktober 2001
  • Laatst online: 30-08-2025
nou, ik heb het een en ander geprobeert om achter mijn locale ip adres to komen in delhi, laat het nou alleen mogelijk zijn om je locale hostname te vinden ..... voor zover ik kan vinden dan :)
hier zijn de regels die ik al geprobeert heb om achter mijn locale ip adres te komen:
Delphi:
1
2
3
4
5
6
7
8
9
tmp := ClientSocket.LocalHost;                 {resultaat: tmp = ''}
tmp := TcpServer1.LocalHostAddr;            {resultaat: tmp = ''}
tmp := TcpClient1.LocalHostAddr;             {resultaat: tmp = ''}
tmp := TcpServer1.LocalHost;                   {resultaat: tmp = ''}
tmp := TcpClient1.LocalHost;                    {resultaat: tmp = ''}
tmp := ClientSocket.LocalHostAddr;          {resultaat: tmp = ''}
tmp := ClientSocket.LocalHostName;        {resultaat: tmp = '026_02'}
tmp := TcpClient1.LookupHostAddr(ClientSocket.LocalHostName);        {resultaat: tmp = ''}
tmp := TcpServer1.LookupHostAddr(ClientSocket.LocalHostName);       {resultaat: tmp = ''}


die met resultaat = '026_02' klopt, dat is mijn computernaam, maar ik wil graag het ip hebben |:(

heeft iemand nog wijze raad?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

SA -> PW

Ik neem aan dat de handleiding en Google niets opleveren?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • _HugoBoss_
  • Registratie: April 2002
  • Laatst online: 11-07 09:02
Je localhost is altijd 127.0.0.1
Maar ik neem aan dat je 't ip vaan een andere adapter (modem, netwerkkaart) wilt hebben. Kijk daarom eerst of je een overzicht van de aanwezige adapters op kunt vragen en daar een keuze uit kunt maken.

Whatever..


  • Johnny5
  • Registratie: Oktober 2001
  • Laatst online: 30-08-2025
ik heb vaker wat op moeten zoeken voor delphi en google heeft mijn nog geen een keer kunnen helpen, maar ik zal het zo nog ff proberen.

enne... :S handleiding? als je bedoelt die van delphi zelf. nee, hielp niet.

  • Johnny5
  • Registratie: Oktober 2001
  • Laatst online: 30-08-2025
ik had nog een ingeving van een combinatie:
code:
1
tmp := ClientSocket.LookupHostAddr(ClientSocket.LocalHostName);

maar helaas, deze geeft ook tmp = '' :(

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 31-08 19:41

Creepy

Tactical Espionage Splatterer

clientsocket.localaddress of serversocket.localaddress geven allebei het IP van de netwerk interface terug. Localhost geeft de naam terug (www.localhost.nl o.i.d.).

Je kan deze pas gebruiken als de socket een connectie heeft.

(hint: bovenstaande info komt uit de Delphi help!)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

De goeie manier dan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
uses winsock



function GetIP: String;



function TForm1.GetIP: String;
type
  TaPInAddr = Array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: Array[0..63] of Char;
  I: Integer;
  GInitData: TWSAData;
begin
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(buffer);
  if phe = nil then Exit;
  pPtr := PaPInAddr(phe^.h_addr_list);
  I := 0;
  while pPtr^[I] <> nil do
   begin
    Result := inet_ntoa(pptr^[I]^);
    Inc(I);
   end;
  WSACleanup;
end;

  • Johnny5
  • Registratie: Oktober 2001
  • Laatst online: 30-08-2025
lol MarcoTC , Wezen gaf de link naar de info die jij hier post :)
maar volgens mij werkt die functie wel, moet het alleen nog testen (staat in mijn proggie en hij compileert em mee) jullie horen hier morgen meer van.

alvast bedankt

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Indy heeft een helper classe hiervoor

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

hmm, er staat op http://delphi.about.com een artikel incl de source-code voor dit probleem. Ik heb zo niet het exacte artikel, ff zoeken dus.

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 18-08 10:58

Bergen

Spellingscontroleur

Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function my_ip_address: longint;
const
    bufsize = 255;
var
    buf: pointer;
    RemoteHost: PHostEnt; (* No, don't free it! *)
begin
    buf := nil;
    try
        getmem (buf, bufsize);
        winsock.gethostname (buf, bufsize); (* this one maybe without domain *)
        RemoteHost := Winsock.GetHostByName (buf);
        if RemoteHost = nil then
            my_ip_address := winsock.htonl ($07000001) (* 127.0.0.1 *)
        else
            my_ip_address := longint (pointer (RemoteHost^.h_addr_list^)^);
    finally
        if buf <> nil then
            freemem (buf, bufsize);
    end;
    result := winsock.ntohl (result);
end;

Verwijderd

Ik Heb het probleem ook nog steeds idd...

Ik heb wel een methode gevonden, maar als je een netwerk hebt, dan pakt hij ALTIJD je netwerk-IP in plaats van je internet-IP ...

Wat wel kan, is een bericht sturen naar een host, en heb vragen wat je IP is.. Dan komt het wel goed.. Dus als je via internet werkt, en er is altijd een host online, kun je naar zijn ip een berichtje sturen, en dan geeft hij jou ip terug.. Maarja, das natuurlijk omslachtig.

  • Johnny5
  • Registratie: Oktober 2001
  • Laatst online: 30-08-2025
hmmmz, tnx voor al jullie hulp. GerbenW, je code geeft een longint terug warmee ik niet zou weten wat ik ermee moet doen (het is iig geen ip zoals die eruit komt)
MarcoTC, je code lijkt nu goed te werken op mijn thuis netwerk, ik test het morgen ook even op een wat groter netwerk. maar ik heb er veel vertrouwen in.

  • Chimera
  • Registratie: December 2001
  • Laatst online: 17-07 11:24
Johnny5 schreef op 06 oktober 2002 @ 13:34:
hmmmz, tnx voor al jullie hulp. GerbenW, je code geeft een longint terug warmee ik niet zou weten wat ik ermee moet doen (het is iig geen ip zoals die eruit komt)
MarcoTC, je code lijkt nu goed te werken op mijn thuis netwerk, ik test het morgen ook even op een wat groter netwerk. maar ik heb er veel vertrouwen in.
Ik start nu net Delphi ff op, en die van MarcoTC werkt bij mij in ieder geval niet, tenminste niet hoe we zouden willen dat het werkt, die returned namelijk mijn netwerkadres: 192.168.***.***, ipv mijn internet adres :(

[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 31-08 19:41

Creepy

Tactical Espionage Splatterer

Chimera2k2 schreef op 06 oktober 2002 @ 21:41:
[...]

Ik start nu net Delphi ff op, en die van MarcoTC werkt bij mij in ieder geval niet, tenminste niet hoe we zouden willen dat het werkt, die returned namelijk mijn netwerkadres: 192.168.***.***, ipv mijn internet adres :(
Nofi, maar dat krijg je van dom kopieren en plakken. Je begrijpt de code niet, en snapt dus ook niet wat er precies gebeurd en blijkbaar ook niet wat je aan zou kunnen passen. Dat is nou net 1 van de redenen dat ik geen copy&paste code plaats (en ik hoop dat dat iedereen die dit leest ook niet zomaar een stukje code (meer) neerplempt onder het mom "gebruik dit maar, dit werkt")

Kijk eens naar de phe en pptr var's. Daar zit nog meer in. 1 en ander wordt mooi uitgelegd op de MSDN site. (zoek maar eens op die WSAstartup functie!)

Anders is er ook altijd nog de IP Helper API waarmee je allerlei info kan opvragen m.b.t. je interfaces (o.a. modem en netwerkkaarten). Voor Delphi kan je de Ip Helper API functies downloaden op de Delphi Jedi site.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Chimera
  • Registratie: December 2001
  • Laatst online: 17-07 11:24
Creepy schreef op 06 oktober 2002 @ 22:36:
[...]

Nofi, maar dat krijg je van dom kopieren en plakken. Je begrijpt de code niet, en snapt dus ook niet wat er precies gebeurd en blijkbaar ook niet wat je aan zou kunnen passen. Dat is nou net 1 van de redenen dat ik geen copy&paste code plaats (en ik hoop dat dat iedereen die dit leest ook niet zomaar een stukje code (meer) neerplempt onder het mom "gebruik dit maar, dit werkt")

Kijk eens naar de phe en pptr var's. Daar zit nog meer in. 1 en ander wordt mooi uitgelegd op de MSDN site. (zoek maar eens op die WSAstartup functie!)

Anders is er ook altijd nog de IP Helper API waarmee je allerlei info kan opvragen m.b.t. je interfaces (o.a. modem en netwerkkaarten). Voor Delphi kan je de Ip Helper API functies downloaden op de Delphi Jedi site.
Ok, dat is zo, maar ik heb dat ff snel tussendoor gedaan, ik heb ook niet gezegd dat ik er intensief mee bezig ben geweest. Misschien doe ik dat volgende week in de vakantie wel ff, maar ik heb er nu echt ff geen tijd voor... Tuurlijk, ik had dat hele ding kunnen ontleden en van elke functie er het fijne van opzoeken in de Delphi help/Mastering Delphi 5 (door Marco Cantu, ken je vast wel). Maar zoals ik al zei: "Ik had daar geen tijd voor". En Hier zegt Johnny5:
Johnny5 schreef op 06 oktober 2002 @ 13:34:
hmmmz, tnx voor al jullie hulp. GerbenW, je code geeft een longint terug warmee ik niet zou weten wat ik ermee moet doen (het is iig geen ip zoals die eruit komt)
MarcoTC, je code lijkt nu goed te werken op mijn thuis netwerk, ik test het morgen ook even op een wat groter netwerk. maar ik heb er veel vertrouwen in.
En dus dacht ik: Ff proberen, maar ja bij mij werkt ie dus niet, nou ja, ik kijk er wel ff naar als ik tijd heb, maar ik geef toch ff wat feedback...

Just my $0,02

[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 31-08 19:41

Creepy

Tactical Espionage Splatterer

Dat is het hem nu net... programmeren moet je de tijd voor nemen, dat leer je niet zomaar ff ;)

Maar nogmaals: kijk voor de gein eens naar die IP Helper API, en download de benodigde bestanden van de Delphi Jedi. Daar zit ook meteen een mooi voorbeeld bij.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Johnny5
  • Registratie: Oktober 2001
  • Laatst online: 30-08-2025
hij werkt goed bij mij. tnx all. toen die het nog niet goed deed bij mij kwam het doro een fout ingevulde if :(
die dingen schieten er altijd tussendoor bij mij.

Verwijderd

Je schijnt ook aparte websites o.i.d. te hebben, of aparte servers o.i.d. die je IP returnen, zodra je ze een bericht stuurt... Dat moet ik nog even opzoeken.. dat zou ook we handig zijn.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

www.whatismyip.com :P

Toch nog even een zinnig verhaaltje:
Mocht je het IP willen hebben welke wordt gebruikt voor internet dan zoek je het IP wat bij de interface hoort met de default gateway. Hier gaan namelijk alle paketten heen die niet lokaal kunnen worden bezorgd (volgens mij).

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Beide methodes werken niet... Bij netwerken pakt ie nog de netwerk ip.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 31-08 19:41

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 07 oktober 2002 @ 22:39:
Beide methodes werken niet... Bij netwerken pakt ie nog de netwerk ip.
Hij pakt de eerste interface die "hij" tegenkomt. Je moet dan in jouw geval de volgende interface hebben.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Professionele website nodig?


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

lijkt mij redelijk een manual probleem
en ook de sourcecode die je krijgt proberen te begrijpen maakt deel uit van het _leren_ programmeren. vele uren klooien totdat het werkt hoort erbij, zo hebben degenen die aan het helpen zijn het ook geleerd. kortom doe maar wat moeite en als het echt niet lukt is er altijd nog GoT

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.