hallo erstmal
ich schreib egrde ein einfaches ip-programm, welches mir die loale und die internet-ip anzeigt! alles funzt perferkt, aber beides soll zu form1.onShow, damit, wenn ich das programm öffe, sofort in 2 Edit-feldern die IP sehe! dennoch funzt nur die lokale ip, die i-net ip zeigt er mir net an, obwohl er alles ohne fehler compileirt :S
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: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| procedure TForm1.FormShow(Sender: TObject); var InetIP: string; WebAddress, SearchString: string; Buff, P, FT: PChar; BuffLen: Word; StartPos, StringLength, TempInt: Integer; begin Edit1.Text:=(Getipaddress); <<< das ist unwichtig! teil für die lokale-ip! befehl der funktion WebAddress := 'http://www.whatismyip.com/'; SearchString := 'Your ip is '; Edit2.text:=''; try NMHTTP1.Get(WebAddress); except on E: Exception do begin MessageDlg('Could not get IP Address! ' +
'Please ensure you are connected to ' + 'the Internet.', mtError, [mbOK], 0); end; end; Edit2.Text := NMHTTP1.Body; Edit2.SelStart := 0; GetMem(FT, Length(SearchString) + 1); StrPCopy(FT, SearchString); BuffLen:=Edit1.GetTextLen + 1; GetMem(Buff, BuffLen); Edit2.GetTextBuf(Buff, BuffLen);
P := Buff + Edit2.SelStart + Edit2.SelLength;
P := StrPos(P, FT); if P = nil then MessageBeep(0) else begin Edit2.SelStart := P - Buff; Edit2.SelLength := Length(SearchString); end; StringLength := Edit2.SelLength; StartPos := Edit2.SelStart + StringLength; tempint := StartPos; InetIP := ''; while ((Buff[TempInt] in ['0'..'9']) or (Buff[TempInt] = '.')) do begin InetIP := InetIP + Buff[TempInt]; tempint := tempint + 1; end; FreeMem(FT, Length(SearchString) + 1); FreeMem(Buff, BuffLen); Edit2.text:=(InetIP); end; |
ich versteh einfach net, warum es net funzt *GG*
danke im voraus
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
Ordnung braucht nur der Dumme. Das Genie beherrscht das Chaos! (Albert Einstein)