Hoi,

Ik wil het IP adres van bezoekers opslaan in MySQl. Ik haal het adres op met
$ip=$_SERVER['REMOTE_ADDR'];


Vraag 1:
In hoeverre geeft $_SERVER['REMOTE_ADDR'] een IPv6 adres of is dat momenteel nog altijd IPv4?

Vraag 2:
Hoe kan ik testen of ik een IPv4 of een IPv6 adres heb?

Vraag 3:
Ik heb al uitgevonden dat ik met ip2long($ip) heel makkelijk een IPv4 adres om kan zetten naar een integer, maar is er ook zo'n functie voor IPv6 adressen, want die heb ik niet gevonden.

Alvast bedankt voor jullie gewaardeerde reacties!

Jop
1) Ja, dit geeft het IPv4 of IPv6 adres aan waarmee mer met de webserver wordt gecommuniceerd.
2) Zie deze functies eens:


<?php
$ip = "123.123.123.123";
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {    
    echo "je hebt IPv4";
}
?>



<?php
$ip = "FE80:0000:0000:DEAD:BEEF:B3FF:COFF:EE00";    
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    echo "Je hebt IPv6";
}?>


3) [php]inet_ntop[/php] en [php]inet_pton[/php]
@Arien,

Dank je. Die inet_ntop en inet_pton heb ik niet helemaal (of beter: helemaal niet) begrepen. Kun je misschien een tip van de sluier oplichten hoe ik die functies zou moeten gebruiken om iets in de database te krijgen?
echo inet_ntop($ipv4) geeft bij mij geen output en met pton geeft vreemde tekens.
Dan vrees ik dat PHP op je server geen IPv6 ondersteuning heeft?
Wat die functies voor format teruggeven, zou ik overigens niet weten.
Waarop baseer je dat er geen IPv6 ondersteuning zou zijn. Ik heb alleen IPv4 getest met inet_ntop(). Aan IPv6 ben ik helemaal nog niet begonnen.

[size=xsmall]Toevoeging op 19/11/2015 13:05:27:[/size]

Heeft iemand nog een idee hoe je IPv6 adressen het beste in een MySQL database kan opslaan?

Reageren