में बाहरी (सार्वजनिक) आईपी कैसे प्राप्त करें मुझे डेल्फी से अपना बाहरी (सार्वजनिक) आईपी पता प्राप्त करने की आवश्यकता है।डेल्फी
उदाहरण के लिए www.whatismyip.com द्वारा दिखाया गया एक ही आईपी।
मैं यह कैसे कर सकता हूं? विंसॉक इस अनुमति नहीं देता है।
में बाहरी (सार्वजनिक) आईपी कैसे प्राप्त करें मुझे डेल्फी से अपना बाहरी (सार्वजनिक) आईपी पता प्राप्त करने की आवश्यकता है।डेल्फी
उदाहरण के लिए www.whatismyip.com द्वारा दिखाया गया एक ही आईपी।
मैं यह कैसे कर सकता हूं? विंसॉक इस अनुमति नहीं देता है।
मुझे नहीं लगता कि आप कर सकते हैं। खैर, आप कुछ सेवा कह सकते हैं जो आपको बताती है कि आपका आईपी पता क्या प्रतीत होता है, (उदा: http://www.whatismyip.com/) और प्रतिक्रिया से इसे समझें। लेकिन मुझे नहीं लगता कि आपके पीसी पर कुछ भी आपको बताएगा कि आपका आईपी पता बाहरी दुनिया में कैसा दिखता है।
untested है, लेकिन मुझे लगता है आप इंडी के साथ ऐसा कर सकते हैं: इस प्रयोग करने से पहले http://www.whatismyip.com/faq/automation.asp:
MyPublicIP := IdHTTP1.Get('http://automation.whatismyip.com/n09230945.asp');
पर नियमों/नीति की समीक्षा करें।
... और कारण यह है कि आपका सार्वजनिक पता आपके कंप्यूटर से जरूरी नहीं है। अक्सर, यह एक बाहरी राउटर को सौंपा गया है, जो सभी प्रभावों के लिए एक पूरी तरह से अलग कंप्यूटर है। –
हां। डिफ़ॉल्ट गेटवे के साथ सार्वजनिक आईपी और एडाप्टर दो अलग-अलग चीजें हैं। –
, अपरीक्षित: http://ipinfo.io/json:
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;
आप इस वेबसाइट का उपयोग कर सकते हैं। यह JSON
प्रारूप में आपके वर्तमान इंटरनेट कनेक्शन के बारे में जानकारी देता है।
डेल्फी में आपको IdHTTP
का उपयोग करने की आवश्यकता है: IdHTTP1.Get('http://ipinfo.io/json')
और यह सभी डेटा के साथ एक स्ट्रिंग लौटाएगा। आप एक JSON
दुभाषिया आप की तरह उपयोग कर सकते हैं या आप निम्नलिखित उदाहरण के रूप में उपयोग कर सकते हैं lkJSON
:
json := TlkJSON.ParseText(MainEstrutura.IdHTTP1.Get('http://ipinfo.io/json')) as TlkJSONobject;
str := json.Field['ip'].Value;
मुझे आशा है कि आप मदद करते हैं।
यदि आप इसके बजाय 'http: // ipinfo.io/ip' का उपयोग करते हैं, तो यह केवल जेएसओएन में लपेटे बिना सादे पाठ में आईपी देता है जिसे पार्स किया जाना चाहिए। –
इस उत्तर में दिए गए कोड के रूप में आपको इस आईपी –
के बारे में सभी जानकारी प्राप्त करने के लिए 'http: // ipinfo.io/json' उपयोग की आवश्यकता है। ओपी ने आईपी के बारे में सभी विवरण पुनर्प्राप्त करने के लिए नहीं कहा था, केवल आईपी को पुनः प्राप्त करने के लिए । इसलिए '/ json' अधिक होता है जब'/ip' पर्याप्त होगा। यदि आप वेबसाइट के दस्तावेज़ीकरण को पढ़ते हैं, तो अलग-अलग फ़ील्ड स्वयं द्वारा पुनर्प्राप्त किए जा सकते हैं। –
यह मेरे लिए काम करता है:
uses 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;
मैं ऐसी सेवाओं का उपयोग करना पसंद करता हूं जो किसी भी अतिरिक्त मेटाडेटा स्वरूपण के बिना आईपी को सादा पाठ के रूप में रिपोर्ट करते हैं। उदाहरण के लिए: 'कार्य गेटआईपी: स्ट्रिंग; TIdHTTP के साथ शुरू करें। परिणाम प्रयास करें: = http।जाओ ('http://ipinfo.io/ip'); आखिरकार मुक्त हुआ; समाप्त; अंत; ' –
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;
बाहरी IP पता करके, आप अपने इंटरनेट सुलभ आईपी पते मतलब है? या क्या आपका मतलब स्थानीय नेटवर्क पता है जो 127.0.0.1 नहीं है? – Tremmors
इंटरनेट सुलभ पता, www.whatismyip.com – chubbyk
द्वारा दिखाया गया यह प्रश्न आपके कंप्यूटर के वास्तविक आईपी पते दिखाता है; http://stackoverflow.com/questions/576538/delphi-how-to-get-all-local-ips –