ทุกคนกำลังยุ่งกับ RFCs คลาส IP และเช่นนั้น เพียงเรียกใช้การทดสอบสองสามครั้งเพื่อดูว่าping
คำสั่งแยกวิเคราะห์อินพุต IP โดยผู้ใช้อย่างไร
> ping 1
Pinging 0.0.0.1 with 32 bytes of data:
> ping 1.2
Pinging 1.0.0.2 with 32 bytes of data:
> ping 1.2.3
Pinging 1.2.0.3 with 32 bytes of data:
> ping 1.2.3.4
Pinging 1.2.3.4 with 32 bytes of data:
> ping 1.2.3.4.5
Ping request could not find host 1.2.3.4.5. Please check the name and try again.
> ping 255
Pinging 0.0.0.255 with 32 bytes of data:
> ping 256
Pinging 0.0.1.0 with 32 bytes of data:
อย่างที่คุณเห็นping
คำสั่ง (ใน Windows) อนุญาตให้คุณใช้รูปแบบที่อยู่ IP แบบต่างๆ ที่อยู่ IPv4 สามารถแบ่งออกเป็นสี่ส่วน (“ dotted-quad”) ดังนี้: A.B.C.D
, และping
คำสั่งอนุญาตให้คุณออกไปบางส่วน, กรอกค่าเริ่มต้น0
ดังนี้:
1 part (ping A) : 0.0.0.A
2 parts (ping A.B) : A.0.0.B
3 parts (ping A.B.C) : A.B.0.C
4 parts (ping A.B.C.D) : A.B.C.D
หากคุณจัดหาชิ้นส่วนเพียงชิ้นเดียวหากอยู่ต่ำกว่า 255 (สูงสุดสำหรับ octet) จะถือว่าเป็น octet ดังกล่าว แต่ถ้ามากกว่า 255 ก็จะถูกแปลงและรีดลงในฟิลด์ถัดไป (เช่นmod 256
)
มีบางกรณีที่ขอบเช่นการให้มากกว่าสี่ส่วนดูเหมือนจะใช้งานไม่ได้ (เช่นgoogle.com
IP ของการส่งPing จะไม่ทำงาน0.74.125.226.4
หรืออย่างใดอย่างหนึ่ง74.125.226.4.0
)
คุณยังสามารถใช้รูปแบบเลขฐานสิบหกทั้งในรูปแบบจุดและรูปแบบแบน แต่ต้องจัดรูปแบบโดยรอดำเนินการล่วงหน้า0x
ไปยังแต่ละ octet
ดังนั้นมีหลายวิธีในการแสดงที่อยู่ IP (IPv4) คุณสามารถใช้รูปแบบแบบแบนหรือแบบจุด (หรือแบบจุดสามจุดแบบจุดคู่หรือแบบจุดเดียว) และสำหรับแต่ละรูปแบบคุณสามารถใช้ทศนิยม (ฐานแปดและฐานสิบหก) ตัวอย่างเช่นคุณสามารถ ping ได้google.com
หลายวิธีดังนี้:
google.com
(ชื่อโดเมน)
74.125.226.4
(ทศนิยมแบบจุด)
1249763844
(ทศนิยมทศนิยม)
0112.0175.0342.0004
(จุดแปดด้าน)
011237361004
(ฐานแปดแบน)
0x4A.0x7D.0xE2.0x04
(ฐานสิบหกประ)
0x4A7DE204
(ฐานสิบหกแบน)
74.0175.0xe2.4
(ಠ_ಠ)
(ขอบคุณพระเจ้าที่ไม่ได้เพิ่มการสนับสนุนรูปแบบสัญกรณ์!)
ใบสมัคร :
ในกรณีของคุณการส่ง Ping 192.168.072
จะใช้รูปแบบที่สามในตารางด้านบน ( A.B.0.C
) ดังนั้นคุณจึงส่ง Ping จริง192.168.0.072
ๆ เพิ่มเติมเนื่องจากคุณมีศูนย์นำในส่วนสุดท้ายจะถือว่าเป็นฐานแปดซึ่งในทศนิยมเป็น 58
แก้ไขปริศนาแล้ว
โปรดทราบว่าในขณะที่ping
คำสั่งWindows อนุญาตให้ใช้รูปแบบที่หลากหลายสำหรับอินพุตและตีความรูปแบบที่ไม่ได้มาตรฐานในรูปแบบที่เห็น แต่ก็ไม่ได้แปลว่าคุณสามารถใช้รูปแบบดังกล่าวได้ทุกที่ บางโปรแกรมอาจบังคับให้คุณให้ทั้งสี่ส่วนของจุดประสี่ส่วนอื่น ๆ อาจไม่อนุญาตให้มีการผสมและจับคู่ทศนิยมและฐานแปดและอื่น ๆ
นอกจากนี้ที่อยู่ IPv6 ยังทำให้ตรรกะการแยกวิเคราะห์และการยอมรับรูปแบบอินพุตมีความซับซ้อนยิ่งขึ้น
ภาคผนวก :
syss ชี้ให้เห็นว่าถ้าคุณใช้อักขระที่ไม่ถูกต้องในหนึ่งในตัวเลข (เช่น, 8
หรือ9
เมื่อใช้ฐานแปด, g
ในโหมด hex, ฯลฯ ) แล้วping
ฉลาดพอที่จะรับรู้และตีความมันเป็นสตริง (-al? -ic?) URL แทนที่จะเป็นที่อยู่ IP ตัวเลข
(ในฐานะคนที่มีโป่งพองและหัวใจวายจำนวนมากพยายามเขียนรหัส "ง่าย ๆ " ที่คาดคะเนเพื่อรองรับจำนวนการเปลี่ยนลำดับของค่าข้อมูลที่อธิบายอย่างทวีคูณฉันขอขอบคุณที่มัน - ดูเหมือนจะ - ประมวลผลรูปแบบอินพุตทั้งหมดอย่างถูกต้อง กรณีอย่างน้อย 3 1 +3 2 +3 3 +3 4 = 120ชุดรูปแบบ)
ดังนั้นในขณะที่การระบุ010.020.030.040
ความประสงค์ปิง8.16.24.32
ตามที่คาดไว้ผ่าน010.020.030.080
ไปping
จะได้รับการปฏิบัติเช่น URL แทนการอยู่เหมือน IP foo.bar.baz.com
ซึ่งอาจ ( แต่เศร้าไม่ได้) ที่มีอยู่ ในคำอื่น ๆ ก็พยายามที่จะ ping โดเมนย่อย010
บนโดเมนย่อย020
บนโดเมนที่โดเมนระดับบนสุด030
080
แต่เนื่องจาก080
ไม่ได้เป็น TLD ที่ถูกต้อง (เช่น.com
, .net
และเพื่อนของพวกเขา) เชื่อมต่อล้มเหลวที่เหมาะสมในขั้นตอนแรก
สิ่งเดียวกันนี้เกิดขึ้นกับ090.010.010.010
ที่อักขระไม่ถูกต้องอยู่ใน octet ที่แตกต่างกัน เช่นเดียวกัน0xf.0xf.0xf.0xf
ส่ง Ping 15.15.15.15
แต่0xh1.0x1.0xg0.0f
ล้มเหลว
โอ้ฉันเดาว่านั่นคือสิ่งที่คุณจะไม่สามารถพูดได้หลายภาษา
อาจง่ายกว่าและปลอดภัยกว่าเพื่อให้แน่ใจว่าใช้ที่อยู่ 4 –dotted-quad (“ 40q” หรือไม่“ quaddy-quad” หรือ“ cutie-q”) เสมอ
ดังนั้นออกไปและเรียนรู้ฐานบางหมายเลข คุณจะสามารถแสดงให้เห็นและเป็นชีวิตของบุคคลและที่พวกเขากล่าวว่ามี 10 ประเภทของผู้คนที่รู้ไบนารีและผู้ที่ไม่ได้
อย่าคิดแม้แต่กับที่อยู่ IPv6 ฉันคิดว่าพวกเขาเป็นหนึ่งใน 111 แมวน้ำ !!!