พื้นหลัง
แรงบันดาลใจจากคำถาม Unix.SE นี้ (และแน่นอนคำตอบของฉันเอง )
เมื่อมีการระบุที่อยู่ IP สำหรับอินเทอร์เฟซมักจะได้รับในรูปทศนิยมประ:
a.b.c.d e.f.g.h
ที่a.b.c.d
อยู่ที่แท้จริงe.f.g.h
คือ netmask
netmask เมื่อแสดงเป็นไบนารี่นั้นจะเป็นกลุ่มของ1
บิตตามด้วยพวงของ0
บิต เมื่อ netmask จะ ANDed ค่าที่เหมาะสมกับที่อยู่ IP ได้รับผลจะเป็นเครือข่ายส่วนของที่อยู่หรือเพียงแค่ที่อยู่เครือข่าย สิ่งนี้จะถูกตั้งโปรแกรมไว้ในตารางเส้นทางของโฮสต์เพื่อให้โฮสต์รู้ว่าจะส่งสิ่งใดก็ตามที่กำหนดไว้สำหรับเครือข่ายนี้จากส่วนต่อประสานนี้
ที่อยู่ออกอากาศสำหรับเครือข่ายนั้นมาจากการใช้ที่อยู่เครือข่าย (จากด้านบน) และตั้งค่าโฮสต์บิตทั้งหมดเป็น 1 ที่อยู่ออกอากาศจะใช้ในการส่งไปยังที่อยู่ทั้งหมดภายในเครือข่ายที่กำหนด
ท้าทาย
เมื่อได้รับที่อยู่ IP แบบจุดทศนิยมและ netmask ที่ถูกต้องเป็นอินพุตให้ที่อยู่เครือข่ายและที่อยู่การออกอากาศเป็นผลลัพธ์เช่นกันในรูปแบบทศนิยมแบบจุด
- อินพุตต้องเป็นแอดเดรสและมาส์กเป็นสองสตริงในรูปแบบจุดประ คุณอาจผ่านสิ่งนี้เป็น 2 สายแยกเป็นรายการหรืออาร์เรย์ขององค์ประกอบสตริง 2 หรือสตริงเดียวที่มีที่อยู่และหน้ากากคั่นด้วยคั่นคั่นบาง
- รูปแบบเอาต์พุตขึ้นอยู่กับข้อ จำกัด เช่นเดียวกับรูปแบบอินพุต
ตัวอย่าง
Input Output
192.168.0.1 255.255.255.0 192.168.0.0 192.168.0.255
192.168.0.0 255.255.255.0 192.168.0.0 192.168.0.255
192.168.0.255 255.255.255.0 192.168.0.0 192.168.0.255
100.200.100.200 255.255.255.255 100.200.100.200 100.200.100.200
1.2.3.4 0.0.0.0 0.0.0.0 255.255.255.255
10.25.30.40 255.252.0.0 10.24.0.0 10.27.255.255
252
อยู่ในนั้น
10.24.0.0 10.27.255.255
อย่างไร