ที่อยู่ IP มีหรือไม่มีเลขศูนย์นำหน้าเหมือนกันหรือไม่


89

ฉันมีระบบรักษาความปลอดภัยและการตั้งค่าเครือข่ายอนุญาตให้ใช้ที่อยู่ IP สามหลักเท่านั้น ฉันจะไม่ได้ตั้งเป็นแทนฉันต้องใช้192.168.2.100192.168.002.100

ที่อยู่ IP ทั้งสองนี้แตกต่างกันหรือไม่ ฉันจำเป็นต้องตั้งค่า LAN ของเราเตอร์192.168.xxx.xxxให้ทำงานได้อย่างถูกต้องหรือไม่? ฉันไม่พบข้อมูลที่เป็นของแข็งเกี่ยวกับเรื่องนี้


16
ตามคำตอบด้านล่าง 192.168.020.100 ไม่ควรเหมือนกับ 192.168.20.100 แต่มันอาจจะเหมือนกันถ้าระบบของคุณอนุญาตให้ป้อน IP ได้ด้วยวิธีนี้เท่านั้น (ฉันได้เห็นสิ่งนี้กับเครื่องถ่ายเอกสารเมื่อมีการป้อนตัวเลขด้วย IP หลักที่มีลูกศรขึ้น - ลง) - หากระบบของคุณมีการเล่นโวหารแม้ในขณะที่การป้อนข้อมูลแป้นพิมพ์ "ปกติ" เป็นไปได้ (เช่นคุณสามารถ technicall อินพุต192.168.2.100แต่มันบ่น) แล้วฉันขอแนะนำให้คุณมีคำพูดกับผู้ขาย (ระบบรักษาความปลอดภัยที่เชื่อถือได้ เส็งเคร็งเหรอ?)
Hagen von Eitzen

4
นั่นเป็นการตรวจสอบที่แปลกประหลาดจริงๆ ฉันจะเปลี่ยนระบบรักษาความปลอดภัยเป็น @Hagen alludes เป็น
การแข่งขัน Lightness ใน Orbit

2
นี่อาจเป็นซอฟต์แวร์เฉพาะเช่นกัน พวกมันใช้ได้หรือไม่มีผู้นำ0แต่ฉันพบเจอกับแอพพลิเคชั่นบางตัวที่ไม่สนับสนุนที่อยู่ IP ที่ไม่มีตัวเลข 3 หลักในแต่ละออคเต็ต
ps2goat

2
ที่อยู่ IP (v4) ทั้งหมดเป็นเพียง 32 บิตที่แสดงในวิธีที่ดี หาก192.168.002.100เป็นวิธีการที่เครื่องมือของคุณหมายถึง0xc0a80264/ 3232236132 / 192.168.2.100แล้วมันเป็นสิ่งเดียวกัน
ทิมเอส.

1
คุณช่วยตอบรับคำตอบอื่นได้ไหม คนที่คุณยอมรับนั้นผิดจริง ๆ (หรืออย่างน้อยก็ไม่สมบูรณ์) และมีผู้ลงคะแนน 11 ​​คน
Arjan

คำตอบ:


101

มันขึ้นอยู่กับเครื่องมือ

เพื่อจุดประสงค์ส่วนใหญ่ทั้งสองจะเหมือนกัน แต่ไม่เสมอไป

ตัวอย่างเช่นถ้าคุณใช้ตัวเลข 3 หลักเริ่มต้นด้วยศูนย์ (หรือตัวเลขสองหลักเริ่มต้นด้วยศูนย์ขอบคุณ @ Dietrich-Epp) ping จะถือว่าตัวเลขเป็นฐานแปด

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users>ping 011.012.013.014

Pinging 9.10.11.12 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 9.10.11.12:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

37
ping ไม่มากนัก แต่รูทีนพื้นฐานจะใช้inet_addr()
cde

2
มันก็เกิดขึ้นบน OSX
Johann Philipp Strathausen

21
ไม่ใช่เพราะมันมีสามหลัก แต่เป็นเพราะตัวเลขนั้นมีศูนย์นำหน้า คุณสามารถทดสอบได้โดยพยายาม ping 09.09.09.09 ซึ่งใช้งานไม่ได้เพราะ 9 ไม่ถูกต้องในฐานแปด
Dietrich Epp

65

สมมติว่าซอฟต์แวร์ทั้งหมดที่คุณใช้ใช้ dot-decimal และ subnetting อย่างถูกต้องใช่เหมือนกัน

ตัวอย่างเช่น 192.168.0.1 เป็นเพียงเครื่องหมายจุดทศนิยมที่เป็นมิตรของค่าจุดเลขฐานสอง 11000000.10101000.00000000.00000001

ไม่ว่าคุณจะพิมพ์เป็น 192.168.0.1 หรือ 192.168.000.001 ทั้งคู่จะเท่ากับ 11000000.10101000.00000000.00000001


63
จุดต่างๆก็เพื่อความสะดวกเช่นกัน IP ที่แท้จริงคือ 11000000101010000000000000000001
cpast

14
@cpast หรือเป็นเลขฐานสิบหก:C0A80001
jfs

13
หรือเป็นตัวเลขฐานแปด (เริ่มต้นด้วย 0 มีหรือไม่มีจุด) เช่น ping 0300.0250.2.0144 สำหรับ 192.168.2.100
Sergey

15
หรือเป็นเลขทศนิยม3232235521
oldmud0

14
ตามคำตอบของ @GreenstoneWalker ชี้ให้เห็นว่าหลายโปรแกรมจะไม่รับรู้ถึงสิ่งเหล่านี้เหมือนกัน ตัวเลขที่มีศูนย์นำหน้า (ที่ไม่มีตัวเลข 8 หรือ 9) จะถูกเข้าใจว่าเป็นเลขฐานแปด ดังนั้น 010.000.001.063 จะถูกตีความว่าเป็น "8.0.1.51" (ฐานแปด 010 = ทศนิยม 8; ฐานแปด 063 = ทศนิยม 51) แทนที่จะเป็น "10.0.1.63"!
Doktor J

37

มันขึ้นอยู่กับเครื่องมือหรือฟังก์ชั่นใด ๆ ที่โปรแกรมใช้เพื่อแยกวิเคราะห์ที่อยู่ที่ให้ไว้ ทั้ง Microsoft และ Linux รวมถึง OS อื่น ๆ ใช้รูทีนที่เข้ากันได้ของPOSIXinet_addr()สำหรับการแยกวิเคราะห์ที่อยู่

โปรแกรม TCP / IP จำนวนมากเช่น Ping และ FTP ใช้ฟังก์ชัน inet_addr () sockets เพื่อแปลสตริงที่อยู่ IP เป็นที่อยู่ 4 ไบต์ ฟังก์ชันนี้ยอมรับที่อยู่ IP ในรูปแบบเลขฐานสิบฐานแปดและเลขฐานสิบหกมาตรฐาน
Microsoft KB115388 Ping และ FTP แก้ไขที่อยู่ IP ด้วยเลขศูนย์นำเป็น Octal

 

ฟังก์ชั่น inet_addr () แปลงที่อยู่โฮสต์อินเทอร์เน็ต cp จากสัญกรณ์ตัวเลขและจุด IPv4 เป็นข้อมูลไบนารี่ตามลำดับไบต์ของเครือข่าย

ในทุกรูปแบบข้างต้นส่วนประกอบของที่อยู่ประสามารถระบุได้ในทศนิยมฐานแปด (ที่มี 0 นำหน้า) หรือเลขฐานสิบหกที่มี 0X นำหน้า ที่อยู่ในรูปแบบใด ๆ เหล่านี้เป็นสัญลักษณ์และตัวเลขจุดIPv4รวมกัน รูปแบบที่ใช้ตัวเลขทศนิยมสี่ตัวถูกอ้างถึงว่าเป็นสัญกรณ์ประ IPv4 (หรือบางครั้ง: สัญกรณ์ประ IPv4)
inet_addr (3): รูทีนการเปลี่ยนที่อยู่อินเทอร์เน็ต - หน้า man Linux

ด้วยเหตุนี้ระบบเฉพาะของคุณอาจต้องใช้เลขทศนิยมสามหลักสำหรับแต่ละออคเต็ต แต่นี่ไม่เป็นสากลและควรใช้ความระมัดระวังเพื่อให้แน่ใจว่าได้ป้อนที่อยู่ IP ที่ถูกต้อง

แน่นอนเฉพาะตัวเลขที่ถูกต้องสำหรับแต่ละประเภทจะทำงาน นอกช่วงเลขฐานแปดเลขฐานสิบหรือทศนิยมจะล้มเหลวหรือทำให้เกิดปัญหา Octal 088, Hex 0xGG หรือ Decimal 280 เป็นตัวอย่างที่ไม่ถูกต้องทั้งหมด


3
+1 สำหรับฟังก์ชันพื้นฐาน ในการเพิ่มฟังก์ชั่นนี้จะทำให้การวิเคราะห์คำ IP ล้มเหลวหากไบต์ที่ถูกต้อง (เช่น. 88) เป็นศูนย์แบบไม่มีบัฟเฟอร์เนื่องจาก 8 ไม่ใช่ตัวเลขที่ถูกต้องในฐานแปด
March Ho

ใน Windows XP (และก่อนหน้านั้น) ฟังก์ชั่นจะยอมรับหมายเลขฐานแปดที่ไม่ถูกต้องและยังคงพยายามที่จะแปลง สิ่งนี้สามารถนำไปสู่พฤติกรรมที่ไม่ชัดเจนมาก ในฐานะที่เป็นหมายเลขที่ไม่ถูกต้องของ Vista จะถือว่าเป็นชื่อโดเมนและ Windows จะพยายามค้นหา DNS สำหรับสิ่งเหล่านี้ ซึ่งเป็นพฤติกรรมที่แปลกเกินไป แต่อย่างน้อยก็จะไม่ทำให้เกิดปัญหาใด ๆ
Tonny

@ ทุกอย่างที่เป็นเพราะ POSIX inet_addr () ส่งคืน -1 สำหรับค่าที่ไม่ถูกต้องซึ่งวนซ้ำไปถึง 255 รูทีนที่ใหม่กว่าดังที่กล่าวไว้ในหน้า man Linux มีการจัดการข้อผิดพลาดที่ดีกว่า
cde

@ รหัสฉันไม่เคยใส่ใจที่จะเจาะลึกลงไปในกลไกของ inet_addr () ฉันจะใช้คำของคุณมัน :-)
Tonny

13

เมื่อLightness Races ในวงโคจรและคนอื่น ๆ ชี้ให้เห็น

INET(3)หน้าคนอธิบายinet_addrและinet_atonฟังก์ชั่นมาตรฐานที่ใช้สำหรับการแปลง "IPv4 โน้ตตัวเลขและจุดลงไปในรูปแบบไบนารี" มันบอกว่า

... ส่วนประกอบของที่อยู่ประสามารถระบุได้ในทศนิยมฐานแปด (ที่มีเครื่องหมายนำหน้า 0)หรือเลขฐานสิบหกที่มีเครื่องหมายนำหน้า 0X)

ดังนั้นเทคนิค, NO , ที่อยู่ IP พร้อมศูนย์ชั้นนำไม่ได้ (เสมอ) เช่นเดียวกับหนึ่งไม่มีเลขศูนย์นำ ในกรณีของคุณอย่างไร192.168.2.100และจะเหมือนกันเพราะ192.168.002.100002 == 2

อินเทอร์เฟซผู้ใช้ใด ๆ ที่ต้องการให้แต่ละองค์ประกอบมีความยาวสามตัวอักษรโดยมีศูนย์นำหน้าที่ไม่ถูกต้องเสีย


1
แนวคิดที่ว่า "เลขศูนย์นำหน้า" เป็นสิ่งจำเป็น (สำหรับอุปกรณ์บางอย่าง) ดูเหมือนจะไม่เป็นที่โต้แย้ง พื้นฐานสำหรับการเรียกว่า "ไม่ถูกต้องที่จำเป็น" / "เสีย" คืออะไร เพียงเพราะมันละเมิด INET (3) / inet_addr / inet_aton? การใช้งานที่ต้องการเลขศูนย์ดังกล่าวมีแนวโน้มที่จะใช้รหัสอื่นซึ่งอาจสื่อสารได้ดีดังนั้นจึงไม่ถูก "แตก" (ฉันเคยเห็นเครื่องพิมพ์ทำเช่นนี้) มีพื้นฐานที่จะบอกว่าหน้า INET (3) หน้าคนมี "สิทธิ" มากกว่า / เป็นทรัพยากรที่มีสิทธิ์มากกว่าเอกสารทางการอื่น ๆ เช่น RFC และอื่น ๆ ที่อ้างถึงโดยเอกสารฉบับร่างนี้หรือไม่
TOOGAM

6

การใช้งานบางอย่างพิจารณาออกเทตกับศูนย์นำที่จะเป็นทศนิยมการใช้งานอื่น ๆ ถือว่าพวกเขาจะเป็นแปด ตราบใดที่ octet อยู่ในช่วงตั้งแต่ 0 ถึง 7 สิ่งนี้จะไม่สร้างความแตกต่าง ตัวอย่างเช่นจะ192.168.002.100ตีความเช่นเดียวกับ192.168.2.100ในการใช้งานทั้งสอง

แต่ถ้าคุณต้องพิมพ์ที่อยู่192.168.010.100ก็สามารถตีความได้ว่าเป็นอย่างใดอย่างหนึ่ง192.168.10.100หรือ192.168.8.100ขึ้นอยู่กับการใช้งาน นอกจากนี้ยังไม่น่าเป็นไปได้ที่การใช้งานจะมีอยู่ซึ่งจะถือว่าศูนย์นำหน้าเป็นข้อผิดพลาดทางไวยากรณ์ นอกจากนี้ยังมีสถานการณ์ที่ซอฟต์แวร์อาจยืนยันว่าคุณต้องใช้การรับรองแบบบัญญัติสำหรับเหตุผลหนึ่งประการหรืออย่างอื่น ด้วยเหตุผลเหล่านั้นทั้งหมดฉันแนะนำให้หลีกเลี่ยงศูนย์นำหน้าเมื่อคุณเขียนที่อยู่ IP

หากคุณเขียนซอฟต์แวร์ที่ต้องการแยกที่อยู่ IP ฉันขอแนะนำให้ยอมรับเลขศูนย์นำหน้า แต่ส่งคำเตือนไปยังตำแหน่งที่เหมาะสมเมื่อเกิดขึ้น

เกี่ยวข้องเล็กน้อยมีการใช้งานที่ช่วยให้คุณมีองค์ประกอบน้อยกว่าสี่ในสัญกรณ์ประ เมื่อมีส่วนประกอบน้อยกว่าสี่ชิ้นส่วนประกอบสุดท้ายจะมีมากกว่า 8 บิตและส่วนประกอบก่อนหน้านี้มี 8 บิตอย่างแน่นอน ตัวอย่างจริงจะเป็นวิธีที่ถูกต้องในการเขียน192.168.612 192.168.2.100แต่ไม่แนะนำให้ใช้สัญลักษณ์นั้นอีก


0

คำแนะนำเล็กน้อย: ในบางกรณีการใช้คำนำหน้าเป็นศูนย์ในที่อยู่ IP เป็นสิ่งสำคัญ ตัวอย่างคือ Apache .htaccess ปฏิเสธกฎ

ถ้าคุณใช้สิ่งที่ชอบ

deny from 11.22.33.22

Apache เป็นคนโง่ที่จะบล็อกการเข้าถึงจาก IP ต่อไปนี้:

111.22.33.22

11.22.33.221

211.22.33.221

และโดยทั่วไปที่อยู่ IP ใด ๆ ซึ่งรวมถึง 11.22.33.22

ดังนั้นเพื่อให้แน่ใจว่าคุณจะไม่ปิดกั้น IP ใด ๆ ที่คุณไม่ได้ตั้งใจจะบล็อกคุณควรใช้:

deny from 011.022.033.022

เพื่อให้แน่ใจว่า Apache จะบล็อกการเข้าถึงจากที่อยู่ IP 11.22.33.22 เท่านั้น


3
น่าสนใจ คุณสามารถให้การอ้างอิงสำหรับสิ่งนี้ได้หรือไม่?
สกอตต์

ข้อมูลอ้างอิงคือประสบการณ์ส่วนตัวและการทดลองและข้อผิดพลาดมากมายหลังจากพบผู้เข้าชมจำนวนมากที่ถูกปิดกั้นเนื่องจากไม่ได้ใช้ศูนย์นำหน้า อีกวิธีหนึ่งในการหลีกเลี่ยงการแบนที่ไม่ถูกต้องคือการใช้ IP ในรูปแบบ CIDR ตัวอย่างเช่น 11.22.33.22/32 แทนที่จะเป็นเพียง 11.22.33.22
Nick Gar

0

ระวังด้วยนะ มันควรจะเหมือนกัน แต่ไม่ใช่ !
ฉันไม่สามารถหาคำอธิบายสำหรับเรื่องนี้ได้ แต่ฉันสามารถบอกได้อย่างแน่นอนว่าใน windows และ linux ที่อยู่ IP ที่มีและไม่มีเลขศูนย์นำหน้าจะไม่เหมือนกัน! อาจจะเกี่ยวข้องกับการแปลงจากรูปแบบอื่นเช่นเลขฐานสิบหกหรือไบนารี

จากประสบการณ์ของฉันกับ windows และ linux มันไม่ได้ขึ้นอยู่กับเครื่องมือ แต่ขึ้นอยู่กับระบบปฏิบัติการเพราะดูเหมือนว่าฉันกำลังทำงานในปัญหาบางอย่างโดยใช้ ips เช่น 10.08.03.100:

  • หมายเหตุ: ไม่พบ "10.08.0.1" และ 10.09.0.1
  • หมายเหตุ: "10.010.0.1" ได้รับการแก้ไขเป็น 10.8.0.1

linux / debian7 / 8:ผลลัพธ์เดียวกันกับเครื่องมือ "ping" และ "snmpget"

user@test:~$ ping 10.7.0.1
PING 10.7.0.1 (10.7.0.1) 56(84) bytes of data.
^C
--- 10.7.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.07.0.1
PING 10.07.0.1 (10.7.0.1) 56(84) bytes of data.
^C
--- 10.07.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
^C
--- 10.8.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.08.0.1
**ping: unknown host 10.08.0.1**
user@test:~$ ping 10.9.0.1
PING 10.9.0.1 (10.9.0.1) 56(84) bytes of data.
^C
--- 10.9.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.09.0.1
ping: unknown host 10.09.0.1
user@test:~$ ping 10.10.0.1
PING 10.10.0.1 (10.10.0.1) 56(84) bytes of data.
^C
--- 10.10.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

user@test:~$ ping 10.010.0.1
PING 10.010.0.1 (10.8.0.1) 56(84) bytes of data.
^C
--- 10.010.0.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1001ms

windows7 / 8/10:ผลลัพธ์เดียวกันกับเครื่องมือ "ping" และ "telnet"

(ขออภัยฉันไม่มีภาษาอังกฤษอยู่ที่หน้าต่างข้อผิดพลาดบอกว่าไม่พบโฮสต์)

C:\Users\user>ping 10.7.0.1

Ping wird ausgeführt für 10.7.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.07.0.1

Ping wird ausgeführt für 10.7.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.8.0.1

Ping wird ausgeführt für 10.8.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.08.0.1
Ping-Anforderung konnte Host "10.08.0.1" nicht finden. Überprüfen Sie den Namen,

C:\Users\user>ping 10.9.0.1

Ping wird ausgeführt für 10.9.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.09.0.1
Ping-Anforderung konnte Host "10.09.0.1" nicht finden. Überprüfen Sie den Namen,

C:\Users\user>ping 10.10.0.1

Ping wird ausgeführt für 10.10.0.1 mit 32 Bytes Daten:
STRG-C
^C
C:\Users\user>ping 10.010.0.1

Ping wird ausgeführt für 10.8.0.1 mit 32 Bytes Daten:
STRG-C
^C

ศูนย์นำมักจะหมายถึงแปด อันที่จริงเลขฐานแปด 010 คือทศนิยม 8 และ 08 และ 09 เป็นตัวเลขฐานแปดที่ไม่ถูกต้อง ใช่แล้วคำตอบที่ได้รับการยอมรับจาก AthomSfere นั้นผิด (หรืออย่างน้อยก็ไม่สมบูรณ์) ดูความคิดเห็นและคำตอบอื่น ๆ
Arjan

อืมการจัดการ 10.010.0.1 นั้นแย่มากจริงๆ ใน Microsoft Windows ping 10.070.0.1 ถือว่าเป็น 10.56.0.1 และ 10.080.0.1 ให้ข้อผิดพลาดแบบทันที "คำขอ Ping ไม่พบโฮสต์ 10.080.0.1 โปรดตรวจสอบชื่อแล้วลองอีกครั้ง"
TOOGAM

1
ใช่ @TOOGAM, ฐานแปด 070 เป็นทศนิยม 56 และฐานแปด 080 ไม่ใช่ตัวเลขที่ถูกต้อง
Arjan

-4

ที่อยู่ IP ทั้งสองนั้นแตกต่างกัน

อย่างไรก็ตาม:

  • คนทั่วไปจะพิจารณาพวกเขาเหมือนกัน
  • ซอฟต์แวร์บางอย่างจะพิจารณาพวกเขาเหมือนกัน
  • ซอฟต์แวร์บางตัวในบางแพลตฟอร์มจะพิจารณาแตกต่างกัน

หากฟังดูสับสนอาจเป็นเพราะไม่มีมาตรฐานในการควบคุมวิธีการเขียนที่อยู่ IP ดังนั้นโปรแกรมเมอร์ที่แตกต่างกันที่จุดต่าง ๆ ในประวัติศาสตร์และบนแพลตฟอร์มที่แตกต่างกันล้วนมีแนวคิดที่แตกต่างกันในสิ่งที่ควรทำ

ที่อยู่ IP นั้นเป็นเลขฐานสองและผู้คนมักจะใช้เครื่องหมายทศนิยมแบบจุดเพื่อแสดงที่อยู่ IP ซอฟต์แวร์สามารถยอมรับฐานตัวเลขต่าง ๆ (เช่นทศนิยมฐานแปดฐานสิบหก) และตีความสิ่งต่าง ๆ ด้วยวิธีต่าง ๆ ตามวิธีที่คุณเขียน วิธีที่คุณเขียนสามารถบอกซอฟต์แวร์ว่าคุณกำลังเขียนอยู่

ผมแนะนำให้คุณ: อย่าใช้ศูนย์นำถ้าคุณหมายถึงการใช้เครื่องหมายทศนิยมทศนิยมประ ซอฟต์แวร์บางตัวจะพิจารณาว่าการตั้งค่าสถานะเพื่อหมายความว่าคุณกำลังป้อนหมายเลขฐานแปด หากคุณต้องการใส่จำนวนทศนิยมคุณจะไม่ได้ผลลัพธ์ตามที่คาดหวัง

ฉันถามคำถามที่คล้ายกันและได้รับคำตอบที่ดีดังนั้นหากคุณต้องการอ่านข้อมูลของ RFC มีข้อมูลที่ดีที่จะได้รับ


-6

มันควรใช้วิธีใดวิธีหนึ่ง คุณสามารถ ping ด้วยตัวเลขสามหลักและคอมพิวเตอร์จะเข้าใจที่อยู่ IP

แก้ไข : windows จะอ่านเป็นฐานแปดใช้งานได้กับ Linux เท่านั้น


นี่เป็นเรื่องจริง รูปแบบทศนิยมตามที่ทราบกันจริง ๆ นั้นมีไว้สำหรับมนุษย์เท่านั้น อุปกรณ์ในเครือข่ายไม่ใช้การแสดงที่อยู่ IP นี้
Patrick Seymour

1
@Brock Vond: ใช่ยกเว้นฉันคิดว่าคุณย้าย 186 และ 168 โดยไม่ได้ตั้งใจ
Patrick Seymour

6
การใช้ ping กับตัวเลข 3 หลักอาจไม่ทำงาน มันอาจปฏิบัติต่อพวกเขาเป็นฐานแปด
Greenstone Walker

1
@LightnessRacesinOrbit ที่จริงแล้วตัวอย่างที่ให้มาจะใช้ได้แม้ว่าคุณจะเป็นศูนย์มันอย่างน้อยใน Windows และ Debian (ฉันไม่มี Mac) ข้อผิดพลาด / คุณสมบัติเกิดขึ้นเฉพาะในกรณีที่ตัวเลขเป็นศูนย์เบาะและจำนวนศูนย์เบาะมีค่ามากกว่า 7 (เป็นฐานแปดและทศนิยมจะเหมือนกัน) หากคุณพยายามป้อนที่อยู่ทศนิยมที่ถูกต้องเป็นศูนย์ (เช่น 012.034.056.078) จะยังคงพยายามแยกสิ่งนี้เป็นเลขฐานแปดซึ่งส่งผลให้ฟังก์ชัน ping ล้มเหลว
March Ho

1
@MarchHo: ใช่นั่นคือสิ่งที่เราทุกคนพูด
การแข่งขัน Lightness ใน Orbit

-11

ศูนย์นำหน้านั้นไม่มีความหมาย octet คือ (ฐาน -10) หมายเลข 0-255 ไม่ใช่สตริง

เนื่องจากฉันไม่แน่ใจว่าสิ่งที่คุณถาม (หรือคุณรู้ว่าสิ่งที่ถามคำถาม :)): ที่กล่าวว่า IP # จะต้องอยู่ในเครือข่ายย่อยเดียวกันกับเครือข่ายของคุณ หากคุณเลือก 11.12.13.14 ภายในเครือข่ายย่อย 192.168.0.0 อุปกรณ์นั้นจะไม่สามารถพูดคุยหรือใช้เครือข่ายย่อยนั้นได้


lol - ไม่ฉัน def เข้าใจ subnet และแนวคิดพื้นฐานของระบบเครือข่าย ... เพียงแค่ไม่เคยพบผลิตภัณฑ์ที่ต้องการ 3 หลักที่นั่น ผมก็แค่ใช้ 11.12.13.14 เป็นตัวแปร ... แต่ขอบคุณ :)
บร็อค Vond

9
-1: ไม่inet_addrและเครื่องมือนับร้อยนับพันที่ใช้ในการแยกวิเคราะห์ที่อยู่จะนำ 0 นำไปสู่หมายความว่าไบต์จะได้รับในสัญกรณ์ฐาน 8 มันแทบจะ "ไร้ความหมาย"
การแข่งขัน Lightness ใน Orbit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.