वे लगभग एक जैसे ही हैं। ip2long कभी-कभी नकारात्मक मान लौटाता है क्योंकि PHP मूल्यांकन के लिए हस्ताक्षरित संख्याओं का उपयोग करता है, जबकि MySQL अहस्ताक्षरित का उपयोग करता है।
दोनों का मूल्यांकन x*(2^24) + y*(2^16) + z*(2^8) + w*(2^0)
के रूप में किया जाता है , लेकिन PHP में, लंबे समय से हस्ताक्षरित होने के कारण, कुछ IP पतों के लिए नकारात्मक मान दिखाएगा।
For signed long, the range is
(2^31) - 1 = −2,147,483,648 to +2,147,483,647
इसलिए, +2,147,483,647 से अधिक में अनुवाद करते समय पते चारों ओर लपेटे जाएंगे और नकारात्मक मान देंगे।
ip2long("254.254.254.254"); // -16843010
यह लिंक इसका विस्तार से वर्णन करता है।