KOMPOOS.NL

ip naar data procedure - php script

home » php » ip-2-data.html

sitemap


voorbeeld van ip2data procedure

87.88 % .nl .nl
06.34 % .com .com
02.2 % .net .net
01.24 % .be .be
00.55 % .org .org
01.79 % overigen overigen

IP info vandaag

uitleg ip2data procedure

De ip-2-country procedure gebruikt 'een soort van database' om het land te destilleren uit een ip-nummer. Dat werkt overigens uitstekend. Deze ip2data procedure heeft geen database nodig om een extensie uit het ip-nummer "te halen". Deze procedure zet het ip-nummer door middel van gethostbyaddr om in een variabele die in 9 van de 10 keer het land-kenmerk als laatste in zijn "string" heeft staan. Heel vaak wordt ook de naam van de provider vermeldt en soms ook de plaatsnaam. Met een beetje creativiteit kan je deze procedure veel informatie laten tonen (door de data tussen de "punten" (.) uit te lezen en te determineren).

In deze ip2data procedure gebruik ik de data die al op de site, door andere modules, wordt gebruikt. Kijk even bij http://kompoos.nl/php/browser.html hoe je data moet vergaren, en hoe het één en ander in zijn werk gaat. Ik geef ook nog even de http://kompoos.nl/php/blank.gif die op deze pagina gebruikt wordt (als het voor jou makkelijker is kan je ook na een "select all", de blank.gif vanaf deze pagina kopieren). Als je in de onderstaande php-module het absolute pad naar de teller-data hebt aangepast (jouw adres) en je hebt data voorhanden (een gevulde text-file - zie browser.html procedure), en je hebt ook de stylesheet in de head-sectie van jouw pagina geplaatst, zou alles naar behoren moeten werken.

Tot slot:
Je hebt natuurlijk niet de hele procedure nodig om een extensie uit de string te halen. In de eerste "for-loop" in het php-script, staan de paar regeltjes die het eigenlijke werk "doen". Gebruik die als je wilt in jouw eigen prodedures.

html-code met php script voor de ip2data procedure


<div id="ip_2_data_container">
<?php
        $ip2data_array = array();
        $t=time();
        $f=date("Ymd",$t);
        $s="/home/het_absolute_pad_naar_jouw_file/tel/".$f.".txt";
        if(file_exists($s)){
                $inhoud = (file($s));
                $telbruto = count($inhoud);
                for($i=0;$i<$telbruto;$i++){
                        $ipnummer = substr($inhoud[$i],9,15);
                        $ip_data = strrchr(gethostbyaddr(rtrim($ipnummer,".")),'.'); 
                        if(substr($ip_data,1,1)>0){$ip_data = "overigen";}
                        array_push($ip2data_array,$ip_data);
                }
        }
        $array_waarden = array_count_values($ip2data_array);
        $een_procent = (count($ip2data_array)/100);
        $overigen = 0;
        arsort($array_waarden);
        foreach($array_waarden as $key => $val){
                if($key == "overigen"){
                        $overigen = $val;
                }
                else{
                        if(($val/$een_procent)<10){
                                $extra_nul = "0";}else{$extra_nul = "";
                        }       
                        echo "
                        <span class='percentage'>".$extra_nul. round($val/$een_procent,2)."</span> %  <img width='32' height='32' src='blank.gif' alt='".strtolower($key)."' class='witruimte' id='".strtolower($key)."' />
                        <span class='ip_2_data_system'>$key</span>  <br />";
                }
        }
        if(($overigen/$een_procent)<10){
                $extra_nul = "0";}else{$extra_nul = "";
        }       
        echo "
                <span class='percentage'>".$extra_nul.round($overigen/$een_procent,2)."</span> %
                <img alt='overigen' width='32' height='32' id='overigen' class='witruimte' src='blank.gif' />
                <span class='overigen'>overigen</span><br /><br /><span class='overigen'>IP info vandaag</span>";
?>
</div>

stylesheet van de ip2data procedure


<style type="text/css">
        img{
                background:inherit;
                color:#404040}
        .ip_2_data_system,.overigen{
                padding:0 0px 0 10px;
                display:inline-block;
                color:#efefef;
                background:#404040;
                width:130px}
        .ip_2_data_system{
                padding-bottom:4px;
                text-align:right}
        .witruimte{
                margin-left:8px}
        .overigen{
                font-size:smaller;
                text-align:right}
        .percentage{
                display:inline-block;
                background:#373737;
                color:#efefef;
                width:50px;
                padding-left:10px}
        #ip_2_data_container{
                padding:20px;
                display:block;
                color:#ffefef;
                background:#404040;
                width:300px}
        #ip_2_data_container img{
                position:relative;
                top:10px}
</style>
Gebruik voor alle voorbeelden op de http://kompoos.nl een valide html5 pagina.