Delphi'den harici (genel) IP adresimi almam gerekir.Delphi'de harici (genel) IP nasıl edinilir
Örneğin, www.whatismyip.com ile gösterilen aynı IP.
Bunu nasıl yapabilirim? Winsock buna izin vermiyor.
Delphi'den harici (genel) IP adresimi almam gerekir.Delphi'de harici (genel) IP nasıl edinilir
Örneğin, www.whatismyip.com ile gösterilen aynı IP.
Bunu nasıl yapabilirim? Winsock buna izin vermiyor.
Yapabileceğinizi sanmıyorum. Peki, IP adresinizin neye benzediğini, (örn .: http://www.whatismyip.com/) size yanıtı söyleyen bir servis arayabilir ve yanıtı hesaplayabilirsiniz. Ama PC'nizde hiçbir şeyin IP adresinizin neye benzediğini, dış dünyaya anlatabileceğini düşünmüyorum.
Untested, ama Indy ile yapabilirsiniz düşünüyorum: Bu kullanmadan önce http://www.whatismyip.com/faq/automation.asp:
MyPublicIP := IdHTTP1.Get('http://automation.whatismyip.com/n09230945.asp');
de kuralları/politikasını inceleyin. hafızasından
... ve bunun nedeni, genel adresinizin mutlaka bilgisayarınıza bağlı olmamasıdır. Oldukça sık, tüm efektler için tamamen farklı bir bilgisayar olan bir dış yönlendiriciye atanır. –
Evet. Genel IP ve varsayılan ağ geçidi olan bağdaştırıcı iki farklı şeydir. –
, denenmemiş: http://ipinfo.io/json: Bu web sitesini kullanabilirsiniz
function GetMyHostAddress: string;
var
http: IWinHttpRequest;
begin
http := CreateOleObject('WinHttp.WinHttpRequest5.1') as IWinHttpRequest;
http.Open('GET', 'http://automation.whatismyip.com/n09230945.asp', False);
http.Send(EmptyParam);
if http.StatusCode = 200 then
Result := http.ResponseText
else
Result := '';
end;
. Geçerli internet bağlantınız hakkındaki bilgileri JSON
biçiminde döndürür.
Delphi'de IdHTTP
'u şu şekilde kullanmanız gerekir: IdHTTP1.Get('http://ipinfo.io/json')
ve tüm verilerle birlikte bir dize döndürür. İstediğiniz bir JSON
tercüman kullanabilir veya aşağıdaki örnekte olduğu gibi lkJSON
kullanabilirsiniz:
json := TlkJSON.ParseText(MainEstrutura.IdHTTP1.Get('http://ipinfo.io/json')) as TlkJSONobject;
str := json.Field['ip'].Value;
yardıma umut.
Bunun yerine 'http: // ipinfo.io/ip' komutunu kullanırsanız, ayrıştırılması gereken JSON'a sarmadan yalnızca IP adresini düz metin olarak döndürür. –
Bu cevabın kodu olarak kullanmanız gerekir: 'http: // ipinfo.io/json' bu IP hakkında tüm bilgileri almak için –
OP, IP ile ilgili tüm ayrıntıları almak istemedi, sadece IP kendisini almak için . Bu yüzden/json '/ ip' yeterli olduğunda aşırıya kaçıyor. Web sitesinin belgelerini okursanız, bireysel alanlar kendileri tarafından alınabilir. –
bu benim için çalışıyor:
dış IP adresi tarafındanuses JSON,IdHTTP;
function GetIP():String;
var LJsonObj : TJSONObject;
str:string;
http : TIdHttp;
begin
str:='';
http:=TIdHTTP.Create(nil);
try
str:=http.Get('http://ipinfo.io/json');
LJsonObj:= TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(str),0) as TJSONObject;
str := LJsonObj.Get('ip').JsonValue.Value;
LJsonObj.Free;
http.Free;
Except
end;
result:=str;
end;
IP'yi kendi başına fazladan meta veri formatı olmadan düz metin olarak raporlayan servisleri kullanmayı tercih ediyorum. Örneğin: 'işlevi GetIP: String; TIdHTTP.Create ile başlayın Sonuç: = http deneyin.Get ('http://ipinfo.io/ip'); sonunda özgür; son; son bulur; ' –
Function GetMyIP:string;
var
xmlhttp:olevariant;
s,p:integer;
temp:string;
begin
result:=emptystr;
xmlhttp:=CreateOleObject('Microsoft.XMLHTTP');
try
xmlhttp.open('GET', 'http://www.findipinfo.com/', false);
xmlhttp.SetRequestHeader('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3');
xmlhttp.send(null);
except
exit;
end;
if(xmlhttp.status = 200) then
temp:=trim(VarToStr(xmlhttp.responseText));
xmlhttp:=Unassigned;
s:=pos('Address Is:',temp);
if s>0 then
inc(s,11)
else
exit;
temp:=copy(temp,s,30);
s:=pos('<',temp);
if s=0 then exit
else
dec(s);
result:=trim(copy(temp,1,s));
end;
, sizin internet erişilebilen IP adresini demek? Yoksa 127.0.0.1 olmayan bir yerel ağ adresini mi kastediyorsunuz? – Tremmors
internet erişilebilir adres, www.whatismyip.com ile gösterilir. – chubbyk
Bu soru, bilgisayarınızın gerçek IP adreslerini gösterir; http://stackoverflow.com/questions/576538/delphi-how-to-get-all-local-ips –