Mysql
 sql >> Database >  >> RDS >> Mysql

ip2long() in PHP è uguale alla funzione INET_ATON() in MySQL?

Sono quasi esattamente la stessa cosa. ip2long a volte restituisce un valore negativo perché PHP usa numeri con segno per la valutazione, mentre MySQL usa numeri senza segno.

Entrambi sono valutati come x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0) , ma in PHP, a causa della lunga durata della firma, mostrerà valori negativi per determinati indirizzi IP.

For signed long, the range is 
(2^31) - 1 = −2,147,483,648 to +2,147,483,647

Pertanto, gli indirizzi mentre vengono tradotti in oltre +2.147.483.647 si avvolgeranno e forniranno valori negativi.

ip2long("254.254.254.254"); // -16843010

Questo link lo descrive in dettaglio.