ที่อยู่ IP ประกอบด้วยตัวเลขทศนิยมสี่ตัว ซึ่งแต่ละตัวเลขสามารถอยู่ในช่วงตั้งแต่ 0 ถึง 255 แต่ละหมายเลขดังกล่าวจะเทียบเท่ากับเลขฐานสิบหกสองหลักหรือเลขฐานสองแปดบิต ดังนั้นจึงเรียกว่าเลขฐานแปด บางครั้งต้องแปลตัวเลขสั้น ๆ สี่ตัวนี้เป็นตัวเลขยาวเมื่อเขียนสคริปต์
คำแนะนำ
ขั้นตอนที่ 1
คูณเลขออกเต็ตแรกของที่อยู่ IP ด้วย 16777216 หรือเทียบเท่า 256 ยกกำลังสาม ตัวอย่างเช่น หากเรากำลังพูดถึงที่อยู่ IP 192.168.1.1 (มักพบในเครือข่ายท้องถิ่นขนาดเล็ก) จากนั้นหลังจากคูณตัวเลข 192 ด้วย 16777216 คุณจะได้ 3221225472
ขั้นตอนที่ 2
คูณตัวเลขที่สองด้วย 65536 - นั่นคือจำนวนเงินที่คุณได้รับหากคุณเพิ่ม 256 ยกกำลังสอง ตัวอย่างเช่น ในที่อยู่ 192.168.1.1 คุณต้องคูณ 168 ด้วย 65536 และคุณจะได้ 11010048
ขั้นตอนที่ 3
คูณออคเต็ตที่สามด้วย 256 ยกกำลังแรก - นั่นคือด้วยตัวเลข 256 เอง หากคุณแปลงที่อยู่ IP 192.168.1.1 เป็นรูปแบบยาว ผลลัพธ์ของการคูณนี้จะเท่ากับ 256 * 1 = 256
ขั้นตอนที่ 4
ปล่อยให้ตัวเลขที่สี่ไม่เปลี่ยนแปลงซึ่งเท่ากับการคูณด้วยหนึ่ง นี่เป็นเพราะว่าถ้าคุณเพิ่มตัวเลข 256 (หรือตัวเลขอื่นใด) ให้เป็นศูนย์ คุณจะได้รับ 1 ในที่อยู่ IP 192.168.1.1 ผลลัพธ์ของการคูณจะเป็น 1 * 1 = 1
ขั้นตอนที่ 5
บวกผลคูณทั้งสี่เข้าด้วยกัน สำหรับตัวอย่างที่พิจารณาที่นี่ จำนวนเงินจะมีลักษณะดังนี้: 3232235777
ขั้นตอนที่ 6
เมื่อเขียนโปรแกรมใน PHP ให้ใช้ฟังก์ชันสำเร็จรูป ip2long เพื่อแปลที่อยู่ IP เป็นรูปแบบยาว ฟังก์ชั่นที่คล้ายกันในจุดประสงค์สามารถประกอบและรวมไว้ในโปรแกรมหรือโมดูลแยกต่างหากในภาษาการเขียนโปรแกรมอื่น
ขั้นตอนที่ 7
งานแปลที่อยู่ IP จากแบบฟอร์มยาวกลับไปเป็นที่อยู่สั้นนั้นเกิดขึ้นน้อยกว่ามาก เมื่อต้องการทำเช่นนี้ ให้แบ่งที่อยู่แบบยาวด้วย 16777216 และผลการหารทั้งหมดจะกลายเป็นออคเต็ตแรก หารเศษที่เหลือ (อย่าสับสนกับเศษส่วน) ด้วย 65536 เพื่อให้ได้ออคเต็ตที่สอง และอื่นๆ สำหรับเครื่องคำนวณทางวิศวกรรม ให้คำนวณโมดูลัสดังนี้: [C] หมายเลขแรก [MOD] หมายเลขที่สอง [=] เครื่องคิดเลขที่ง่ายที่สุดไม่มีคุณสมบัตินี้
ขั้นตอนที่ 8
เมื่อเขียนฟังก์ชันสำหรับการแปลแบบย้อนกลับในภาษาการเขียนโปรแกรมเฉพาะ ให้ใช้ฟังก์ชันสำหรับการหารจำนวนเต็มและคำนวณส่วนที่เหลือของการหาร ตัวอย่างเช่น ใน Pascal จะเรียกว่า div และ mod ตามลำดับ ส่วนของโปรแกรมสำหรับดำเนินการแปลอาจมีลักษณะดังนี้:
ออกเตต [1]: = longip div 16777216;
nextnumber: = longip mod 16777216;
ออกเตต [2]: = หมายเลขถัดไป div 65536;
nextnumber: = nextnumber mod 65536;
ออกเตต [3]: = หมายเลขถัดไป div 256;
ออกเตต [4]: = nextnumber mod 256;