Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - IP Pubblico (Delphi7)
Forum - Delphi - IP Pubblico (Delphi7) - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
camaleonteplus (Normal User)
Pro


Messaggi: 95
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 15:10
Sabato, 07/05/2011
Riguardo a questo codice:
Codice sorgente - presumibilmente Delphi

  1. function TForm1.GetPublicIp: String;
  2.           begin
  3.       IdHttp1.Request.Host:= 'http://www.whatismyip.com/automation/n09230945.asp';
  4.       result := IdHttp1.Get('http://www.whatismyip.com/automation/n09230945.asp');
  5. end;
  6.  
  7. procedure TForm1.Button1Click(Sender: TObject);
  8. begin
  9.   IPPubblico.Caption:= 'IP Pubblico: ' + (GetPublicIp);
  10. end;


L'errore l'ho risolto bisognava inserire l'indirizzo del sito in entrambe le righe. Adesso funziona.

PM Quote
Avatar
camaleonteplus (Normal User)
Pro


Messaggi: 95
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 15:17
Sabato, 07/05/2011
Dopo aver fatto le modifiche suggerite questo codice funziona:
Codice sorgente - presumibilmente Delphi

  1. Function TForm1.GetMyIP: String;
  2. Var oHttp: TIdHTTP;
  3.     sStream: TStringStream;
  4.     nPos: Integer;
  5.     s:String;
  6. begin
  7.   sStream := TStringStream.Create(s);
  8.   oHttp := TIdHTTP.Create(Nil);
  9.   Result := 'Error';
  10.   Screen.Cursor := crHourGlass;
  11.   try
  12.     Try
  13.       oHttp.Get('http://www.ilmioip.it', sStream);  // tutta la pagina è nello stream
  14.       nPos :=Pos('var IP_CLIENT =', sStream.DataString);
  15.       if nPos>0 then
  16.         Result:= copy(sStream.DataString,npos+17,14);
  17.     Except
  18.       ShowMessage('gestioneerrori');
  19.     End;
  20.   Finally
  21.     freeandnil(sStream);
  22.     freeandnil(oHttp);
  23.     Screen.Cursor := crDefault;
  24.   end;
  25. end;
  26.  
  27. procedure TForm1.Button1Click(Sender: TObject);
  28. begin
  29.   IP.Caption:= 'IP Pubblico: ' + (GetMyIP);
  30. end;


Ma c'è il problema che l'IP compare a video in questo modo:
191.20.30.1';
questo formato non va bene perchè questi 2 caratteri (') e (;) danno fastidio se devo fare un Whois. Sarebbe perfetto se si potrebbero eliminare.

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 18:06
Sabato, 07/05/2011
modifica la riga 16 mangiando uno o due  byte
Result:= copy(sStream.DataString,npos+17,12);  oppure
Result:= copy(sStream.DataString,npos+17,13);



Ibis redibis non morieris in bello
PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 2:41
Domenica, 08/05/2011
Testo quotato

Postato originariamente da Goblin:

modifica la riga 16 mangiando uno o due  byte
Result:= copy(sStream.DataString,npos+17,12);  oppure
Result:= copy(sStream.DataString,npos+17,13);



oppure piu semplicemente:

Codice sorgente - presumibilmente Plain Text

  1. result:= copy(Sstream.dataStream,1,length(sstream.datastream)-2);// - 2 = elimina gli ultimi 2 caratteri



non lo ho testato provalo

Ultima modifica effettuata da smanettone83 il 08/05/2011 alle 2:43
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 17:37
Domenica, 08/05/2011
Testo quotato

Postato originariamente da smanettone83:

oppure piu semplicemente:

Codice sorgente - presumibilmente Plain Text

  1. result:= copy(Sstream.dataStream,1,length(sstream.datastream)-2);// - 2 = elimina gli ultimi 2 caratteri



non lo ho testato provalo



dipende, in quanto in sStream.DataString c'e' tutta la pagina, dunque se ti va bene trovi quello cerchi altrimenti trovo sporcizia. :)


Ibis redibis non morieris in bello
PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 20:05
Domenica, 08/05/2011
si certo era sottinteso che il contenuto della pagina era formato solo dall'ip ;)

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo