Gå til innhold

ip2long og sprintf spørsmål


Anbefalte innlegg

Hei,

 

Jeg holder på å lage en liten IP calculator, og jeg har et lite spørsmål angående ip2long(). Jeg bruker ip2long både til å verifisere at $ip virkelig er en IP (dette er ikke den eneste valideringen) og for å spytte ut den decimale verdien av en IP.

 

Det jeg lurer på er hvorfor ip2long gir "-1073732954", og hva sprintf("%u".... gjør siden den gir den riktige decimale verdien ?

 

<?php

$ip = "192.0.34.166"

$en = ip2long($ip);  	// gir : -1073732954
$to = sprintf("%u", ip2long($ip))	// gir : 3221234342

?>

 

Takker for svar.

Lenke til kommentar
Videoannonse
Annonse
Note:  Because PHP's integer type is signed, and many IP addresses will result in negative integers, you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address.

EDIT:

Og

u - the argument is treated as an integer, and presented as an unsigned decimal number.

Endret av kakkle
Lenke til kommentar
Note:  Because PHP's integer type is signed, and many IP addresses will result in negative integers, you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address.

EDIT:

Og

u - the argument is treated as an integer, and presented as an unsigned decimal number.

6819080[/snapback]

 

:blush:

 

rtfm til meg, takker.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...