2009-05-13 7 views
9

मैं एक PHP पृष्ठ देखने वाले व्यक्ति के आईएसपी प्रदाता को कैसे ढूंढूं?मैं PHP के माध्यम से विज़िटर के आईएसपी को कैसे पुनर्प्राप्त करूं?

क्या PHP को ट्रैक या प्रकट करने के लिए इसका उपयोग करना संभव है?

अगर मैं निम्नलिखित की तरह कुछ का उपयोग करें:

gethostbyaddr($_SERVER['REMOTE_ADDR']); 

यह मेरे आईपी पता, न मेरी होस्ट नाम या आईएसपी देता है।

उत्तर

0

मुझे लगता है कि आपको आईपी को देखने और सेवा प्रदाता को खोजने के लिए कुछ तृतीय पक्ष सेवा (संभवतः एक वेब सेवा) का उपयोग करने की आवश्यकता है।

9

यह आप के लिए क्या देख रहे हो रहा है यह पूर्ण होस्टनाम यदि संभव हो तो वापस जाने के लिए प्रयास करेगा:

http://us3.php.net/gethostbyaddr

+0

यह क्या है मैं देख रहा हूं .. बहुत बहुत धन्यवाद –

+0

आपको नहीं मिला आप .. इसका उपयोग कर सेवा प्रदाता को कैसे ढूंढते हैं? –

+0

प्रतीक्षा कर सकते हैं तो कृपया स्पष्टीकरण दें .. यह मेरा आईपी पता वापस कर देता है ... यह मैं नहीं चाहता था –

8

HTTP हेडर में कुछ भी नहीं है जो आईएसपी एक उपयोगकर्ता इंगित करने के लिए नहीं है से आ रहा है, इसलिए जवाब नहीं है, कोई PHP अंतर्निहित फ़ंक्शन नहीं है जो आपको यह बताएगा। आपको किसी प्रकार की सेवा या लाइब्रेरी का उपयोग करना होगा जो आईपी को नेटवर्क/आईएसपी में मैप करता है।

0

http://whatismyip.com

इस पर जाने के लिए आप अपने इंटरनेट पते दे देंगे। पर डेटाबेस में उस पते प्लग http://arin.net/whois

+0

और यह PHP के माध्यम से ऐसा करने से संबंधित है, बिल्कुल? –

+2

मुझे php चाड का उपयोग करके आपकी बेहतर विधि दिखाई नहीं दे रही है। आप कर्ल, या एक जोइस का उपयोग कर सकते हैं - कई विकल्प लेकिन अगर आपको Arin के बारे में पता नहीं है या जो जानकारी मैंने प्रदान की है वह उपयोगी है। – Eddy

1

GeoIP इस के साथ तुम्हारी मदद करेगा: http://www.maxmind.com/app/locate_my_ip

वहाँ GeoIP डेटा तक पहुँचने के लिए एक php पुस्तकालय है: http://www.maxmind.com/app/php

ध्यान दें, हालांकि, आप पर GeoIP db लगाने की जरूरत है आपकी मशीन इसे काम करने के लिए, सभी निर्देश हैं :)

1

आप किसी भी आईपी पते या मेजबान नाम पर भरोसा नहीं कर सकते हैं ताकि किसी व्यक्ति का उपयोग आईएसपी हो। वास्तव में वह किसी भी आईएसपी का उपयोग नहीं कर सकता है, या वह अपने रोजगार के स्थान पर वीपीएन कनेक्शन के माध्यम से लॉग इन हो सकता है, वहां से दूसरे वीपीएन या रिमोट डेस्कटॉप का उपयोग दुनिया भर में होस्टिंग सेवा के लिए किया जा सकता है, और आपसे कनेक्ट हो सकता है उस। आईपी पता जो आपको मिलेगा वह अंतिम रिमोट मशीन या कुछ फ़ायरवॉल से होगा जो मशीन बैठी है जिसके पीछे कहीं और हो सकता है।

11

आप निम्न पीएचपी codings से उन सभी चीजें मिल सकता है।,

<?php 

$ip=$_SERVER['REMOTE_ADDR']; 

$url=file_get_contents("http://whatismyipaddress.com/ip/$ip"); 

preg_match_all('/<th>(.*?)<\/th><td>(.*?)<\/td>/s',$url,$output,PREG_SET_ORDER); 

$isp=$output[1][2]; 

$city=$output[9][2]; 

$state=$output[8][2]; 

$zipcode=$output[12][2]; 

$country=$output[7][2]; 

?> 
<body> 
<table align="center"> 
<tr><td>ISP :</td><td><?php echo $isp;?></td></tr> 
<tr><td>City :</td><td><?php echo $city;?></td></tr> 
<tr><td>State :</td><td><?php echo $state;?></td></tr> 
<tr><td>Zipcode :</td><td><?php echo $zipcode;?></td></tr> 
<tr><td>Country :</td><td><?php echo $country;?></td></tr> 
</table> 
</body> 
+1

पता नहीं क्यों यह स्वीकार नहीं किया गया था। बहुत अच्छा काम करता है! धन्यवाद। – bozdoz

+32

यह [TOS] (http://whatismyipaddress.com/terms-of-use) का उल्लंघन करता है: "आप किसी लिखित अनुमति के बिना स्वचालित रूप से इस वेबसाइट को किसी स्क्रिप्ट, एजेंट, एप्लिकेशन या अन्यथा क्वेरी नहीं कर सकते हैं।" –

+0

फिर @JeffWinkworth के लिए वैकल्पिक क्या है। क्या आप कृपया बता सकते हैं। –

2

कभी कभी खेतों बदल सकता है इसलिए यह ऊपर पोस्ट के सुधार है।

<body> 
    <table align="center"> 

<? 
$ip=$_SERVER['REMOTE_ADDR']; 
$url=file_get_contents("http://whatismyipaddress.com/ip/$ip"); 
preg_match_all('/<th>(.*?)<\/th><td>(.*?)<\/td>/s',$url,$output,PREG_SET_ORDER); 
for ($q=0; $q < 25; $q++) { 
    if ($output[$q][1]) { 
     if (!stripos($output[$q][2],"Blacklist")) { 
      echo "<tr><td>".$output[$q][1]."</td><td>".$output[$q][2]."</td></tr>"; 

     } 
    } 
} 
?> 
    </table> 
</body> 
-1

साइट या आईपी से आईएसपी खोजने का यह सही तरीका है।

<?php 
$isp = geoip_isp_by_name('www.example.com'); 
if ($isp) { 
    echo 'This host IP is from ISP: ' . $isp; 
} 
?> 
+0

geoip_isp_by_name() यह फ़ंक्शन वर्तमान में केवल उन उपयोगकर्ताओं के लिए उपलब्ध है जिन्होंने वाणिज्यिक भू-आईएसपी संस्करण खरीदा है। – Ingo

+0

जियोआईपी एक सशुल्क लाइब्रेरी है, इसका स्रोत कोड वितरण से बचने के लिए अत्यधिक obfuscated है –

0

मैं राम कुमार के जवाब को सही करने का प्रयास किया है, लेकिन जब भी मैं उनके पोस्ट को संपादित होगा मैं अस्थायी रूप से प्रतिबंधित कर दिया जाएगा और अपने परिवर्तनों को नजरअंदाज कर दिया गया। (क्यों, मुझे नहीं पता, यह मेरा पहला और एकमात्र संपादन था जिसे मैंने कभी भी इस वेबसाइट पर बनाया है।

<?php 
$IP = $_SERVER['REMOTE_ADDR']; 

$User_Agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'; 
$Accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; 
$Accept_Language = 'en-US,en;q=0.5'; 
$Referer = 'http://whatismyipaddress.com/'; 
$Connection = 'keep-alive'; 

$HTML = file_get_contents("http://whatismyipaddress.com/ip/$IP", false, stream_context_create(array('http' => array('method' => 'GET', 'header' => "User-Agent: $User_Agent\r\nAccept: $Accept\r\nAccept-Language: $Accept_Language\r\nReferer: $Referer\r\nConnection: $Connection\r\n\r\n")))); 

preg_match_all('/<th>(.*?)<\/th><td>(.*?)<\/td>/s', $HTML, $Matches, PREG_SET_ORDER); 

$ISP = $Matches[3][2]; 
$City = $Matches[11][2]; 
$State = $Matches[10][2]; 
$ZIP = $Matches[15][2]; 
$Country = $Matches[9][2]; 
?> 
<body> 
    <table align="center"> 
     <tr><td>ISP :</td><td><?php echo $ISP;?></td></tr> 
     <tr><td>City :</td><td><?php echo $City;?></td></tr> 
     <tr><td>State :</td><td><?php echo $State;?></td></tr> 
     <tr><td>Zipcode :</td><td><?php echo $ZIP;?></td></tr> 
     <tr><td>Country :</td><td><?php echo $Country;?></td></tr> 
    </table> 
</body> 

ध्यान दें कि सिर्फ एक उपयोगकर्ता-एजेंट की आपूर्ति शायद पर्याप्त होगा:)

अपने पद से उनका कोड अब और वेबसाइट में परिवर्तन और प्रशासक बुनियादी बॉट चेक (हेडर जाँच) को लागू करने की वजह से काम नहीं करता है और अतिरिक्त शीर्षलेखों की अधिकतर आवश्यकता नहीं है, मैंने अनुरोध को और अधिक प्रामाणिक बनाने के लिए उन्हें अभी जोड़ा है।

2

एआरआईएन की आरईएसटी एपीआई का उपयोग क्यों नहीं करें।

<?php 

// get IP Address 
$ip=$_SERVER['REMOTE_ADDR']; 

// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, 'http://whois.arin.net/rest/ip/' . $ip); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); 

// execute 
$returnValue = curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 

$result = json_decode($returnValue); 

echo <<<END 
<pre> 
Handle: {$result->net->handle->{'$'}} 
Ref: {$result->net->ref->{'$'}} 
Name: {$result->net->name->{'$'}} 
echo "OrgRef: {$result->net->orgRef->{'@name'}}"; 
</pre> 
END; 

// eof 

https://www.arin.net/resources/whoisrws/whois_api.html

संबंधित मुद्दे

 संबंधित मुद्दे