W artykule pokaże jak stworzyć linka, jeśli mamy adres IP + ContinentCode do regionalnego adresu internetowego. Np. jeśli ContinentCode do funkcji będzie podany 'EU' (Europa) wtedy funkcja zwróci linka do RIPE. ContinentCode od adresu IP można zdobyć np. przez geolokalizacje http://www.geoplugin.com/webservices/php zwraca ten parametr, ale nie o tym mowa w artykule.
Skrypt składa się z funkcji PHP do generowania linku + funkcji JS umożliwiającej po kliknięciu w link przejście do niego wraz z wysłaniem odpowiednich danych POST.
Poniżej lista kodów kontynentów:
AF = Africa
AS = Asia
EU = Europe
NA = North America
SA = South America
OC = Oceania
AN = Antarctica
Użycie funkcji:
ContinentDatabaseLinkAssign($ip, $continentCode)
Przykładowy link:
echo '<a href="'.ContinentDatabaseLinkAssign('66.232.123.222', 'NA').'">'.$ip.'</a';
Listing
function postwith (to,p) {
//Funkcja by Fastman92
var myForm = document.createElement("form");
myForm.method="post" ;
myForm.action = to ;
for (var k in p) {
var myInput = document.createElement("input") ;
myInput.setAttribute("name", k) ;
myInput.setAttribute("value", p[k]);
myForm.appendChild(myInput) ;
}
document.body.appendChild(myForm) ;
myForm.submit() ;
document.body.removeChild(myForm) ;
}
function doNothing(){}
</script>
<?php
function ContinentDatabaseLinkAssign($ip, $continentCode){
//Funkcja by Fastman92
//Rozbudowany licznik odwiedzin -> Find in Google
//We must construct link for accessing IP adress in international database according to the continent
switch ($continentCode)
{
case 'EU':
return 'http://www.db.ripe.net/whois?form_type=simple&full_query_string=&searchtext='.$ip.'&do_search=Search';
break;
case 'AF':
return 'http://www.db.ripe.net/whois?form_type=simple&full_query_string=&searchtext='.$ip.'&do_search=Search';
break;
case 'NA':
return 'javascript:postwith(\'http://ws.arin.net/whois/\',{queryinput:\''.$ip.'\'})';
break;
case 'AS':
return 'javascript:postwith(\'http://wq.apnic.net/apnic-bin/whois.pl\',{searchtext:\''.$ip.'\'})';
break;
case 'OC':
return 'javascript:postwith(\'http://wq.apnic.net/apnic-bin/whois.pl\',{searchtext:\''.$ip.'\'})';
break;
case 'SA':
return 'javascript:postwith(\'http://lacnic.net/cgi-bin/lacnic/whois?lg=EN\',{query:\''.$ip.'\'})';
break;
case 'AN':
return 'javascript:postwith(\'http://ws.arin.net/whois/\',{queryinput:\''.$ip.'\'})';
break;
default:
return 'javascript:doNothing();';
}
}
?>
<?php
//test funkcji continentCode
$ip = '66.232.123.222';
$continentCode = 'NA';
echo '<a href="'.ContinentDatabaseLinkAssign($ip, $continentCode).'">'.$ip.'</a';
?>