Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΎ:
- ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° DHCP ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΡΠΈ IPv4
- ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Python (Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Ρ Π½ΡΠ»Ρ π )
- Π·Π°ΠΌΠ΅Π½Π° ΡΠ΅ΡΠ²Π΅ΡΡ
DB2DHCP (ΠΌΠΎΠΉ ΡΠΎΡΠΊ), ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π·Π΄Π΅ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΡ ΠΠ‘ Π²ΡΡ ΡΡΡΠ΄Π½Π΅Π΅ ΠΈ ΡΡΡΠ΄Π½Π΅Π΅. ΠΠ° ΠΈ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ, ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Β«ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΡΡΠΌ ΡΠ°ΡΒ» - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠΊΠΈ IP Π°Π΄ΡΠ΅ΡΠ° Π°Π±ΠΎΠ½Π΅Π½ΡΠ° ΠΏΠΎ mac Π°Π±ΠΎΠ½Π΅Π½ΡΠ° ΠΈΠ»ΠΈ ΡΠ²ΡΠ·ΠΊΠ΅ mac ΡΠ²ΠΈΡΠ°+ΠΏΠΎΡΡ (Option 82)
- Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π° (Π! ΡΡΠΎ ΠΌΠΎΡ Π»ΡΠ±ΠΈΠΌΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅)
- ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ»Π΅ΠΉ ΠΏΡΠΎ ΡΠ²ΠΎΡ ΠΊΠΎΡΠΎΡΡΠΊΠΎΡΡΡ Π½Π° Π₯Π°Π±ΡΠ°Ρ Π°Π±Ρ (Π° Π»ΡΡΡΠ΅ ΠΈΠ½Π²Π°ΠΉΡΠ°) π
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΡΠ°Π±ΠΎΡΠ°Π΅Ρ π ΠΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΠ‘ FreeBSD ΠΈ Ubuntu. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ΄ Π»ΡΠ±ΠΎΠΉ ΠΠ‘, Ρ.ΠΊ. ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π½Π΅Ρ.
ΠΡΡΠΎΡΠΎΠΆΠ½ΠΎ! ΠΠ°Π»ΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Β«ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠ°ΡΡΠΈΒ» ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅, Π° Π΄Π°Π»Π΅Π΅ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΡΠ΅ΠΎΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ DHCP. ΠΠ»Ρ ΡΠ΅Π±Ρ. Π Π΄Π»Ρ ΠΈΡΡΠΎΡΠΈΠΈ π
ΠΠ΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΡΠ΅ΠΎΡΠΈΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DHCP
ΠΡΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΡΠ·Π½Π°ΡΡ ΡΠ²ΠΎΠΉ IP Π°Π΄ΡΠ΅Ρ (Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΡΠΎΠ΄Π΅ ΡΠ»ΡΠ·Π°, DNS ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ), Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP. ΠΠ±ΠΌΠ΅Π½ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ UDP. ΠΠ±ΡΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
- Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ (ΠΊΠ»ΠΈΠ΅Π½Ρ) ΡΠ°ΡΡΡΠ»Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ UDP Π·Π°ΠΏΡΠΎΡ (DHCPDISCOVER) ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Β«Π½Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ IP Π°Π΄ΡΠ΅ΡΒ». ΠΡΠΈΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ (Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°) Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ 68 ΠΏΠΎΡΡΠ° (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ), Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β 67 ΠΏΠΎΡΡ (Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ Ρ 67 ΠΏΠΎΡΡΠ°. ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCPDISCOVER Π²ΠΊΠ»ΡΡΠ΅Π½ MAC Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
- ΠΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² ΡΠ΅ΡΠΈ (Π° ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ), ΡΠΎΡΠΌΠΈΡΡΡΡ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΠΏΡΠ°Π²ΠΈΠ²ΡΠ΅Π³ΠΎ DHCPDISCOVER, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DHCPOFFER Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ, ΠΈ ΡΠ°ΠΊ-ΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΎΡΡΡΠ»Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠΎΠΌΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ΄Π΅Ρ ΠΏΠΎ MAC Π°Π΄ΡΠ΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ Π² Π·Π°ΠΏΡΠΎΡΠ΅ DHCPDISCOVER.
- ΠΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Ρ.Ρ. ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ²), ΠΈ Π΄Π΅Π»Π°Π΅Ρ Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP Β«ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡΒ» DHCPREQUEST Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ΄Π΅Ρ ΡΠΆΠ΅ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ DHCP.
- Π‘Π΅ΡΠ²Π΅Ρ, ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉ DHCPREQUEST, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠ° DHCPACK, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ°Π· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ DHCPINFORM, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
ΠΎΠ΄ΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΈ ΡΠ΅Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ DHCP ΡΠ΅ΡΠ²Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΆΠΈΠ²Β» ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΄Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.
Π€ΠΎΡΠΌΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
Π ΡΠ΅Π»ΠΎΠΌ ΡΡΠ΅ΠΉΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° Ethernet Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° UDP, Π±Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΡΠΎΠ²Π½Π΅ΠΉ OSI, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡΡΠΊΡΡΡΡ DHCP:
DHCPDISCOVER
ΠΡΠ°ΠΊ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ IP Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ DHCP ΡΠ°ΡΡΡΠ»Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Ρ ΠΏΠΎΡΡΠ° 68 Π½Π° 255.255.255.255:67. Π ΡΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΠΉ MAC Π°Π΄ΡΠ΅Ρ, Π° ΡΠ°ΠΊ-ΠΆΠ΅ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡ DHCP ΡΠ΅ΡΠ²Π΅ΡΠ°. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΠΏΠΈΡΠ°Π½Π° Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ Π½ΠΈΠΆΠ΅.
Π’Π°Π±Π»ΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCPDISCOVER
ΠΠΎΠ·ΠΈΡΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΠΉΡ
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
1
Boot Request
1
Hex
1
Π’ΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. 1 β Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, 2 β ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ
2
Hardware type
1
Hex
1
Π’ΠΈΠΏ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ 1 β MAC
3
Hardware adrees length
6
Hex
1
ΠΠ»ΠΈΠ½Π° MAC Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
4
Hops
1
Hex
1
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΠΌΠ°ΡΡΡΡΡΠΎΠ²
5
Transaction ID
23:cf:de:1d
Hex
4
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°
7
Second elapsed
0
Hex
4
ΠΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°
9
Bootp flags
0
Hex
2
ΠΠ΅ΠΊΠΈΠ΅ ΡΠ»Π°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°
11
Client IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
15
Your client IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
19
Next server IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½)
23
Relay agent IP address
172.16.114.41
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ Π°Π³Π΅Π½ΡΠ° ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΠΈΡΠ°)
27
Client MAC address
14:d6:4d:a7:c9:55
Hex
6
MAC Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΊΠ»ΠΈΠ΅Π½ΡΠ°)
31
Client hardware address padding
Hex
10
ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π·Π°Π±ΠΈΡΠΎ Π½ΡΠ»ΡΠΌΠΈ
41
Server host name
Π‘ΡΡΠΎΠΊΠ°
64
ΠΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP. ΠΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ
105
Boot file name
Π‘ΡΡΠΎΠΊΠ°
128
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π±Π΅Π·Π΄ΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΡΡΠ°Π½ΡΠΈΡΠΌΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
235
Magic cookie
63:82:53:63
Hex
4
Β«ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» ΡΠΈΡΠ»ΠΎ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² Ρ.Ρ. ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ β ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ DHCP
ΠΠΏΡΠΈΠΈ DHCP. ΠΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
236
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
53
Dec
1
ΠΠΏΡΠΈΡ 53, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΡΠΈΠΏ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCP
1 β DHCPDISCOVER
3 β DHCPREQUEST
2 β DHCPOFFER
5 β DHCPACK
8 β DHCPINFORM
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
50
Dec
1
ΠΠ°ΠΊΠΎΠΉ IP Π°Π΄ΡΠ΅Ρ Ρ
ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
172.16.134.61
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
55
1
ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π‘ΠΎΡΡΠ°Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ
01 β ΠΠ°ΡΠΊΠ° ΡΠ΅ΡΠΈ
03 β Π¨Π»ΡΠ·
06 β DNS
oc β ΠΠΌΡ Ρ
ΠΎΡΡΠ°
0f β ΠΈΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ΅ΡΠΈ
1c β Π°Π΄ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° (Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠ°)
42 β ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° TFTP
79 β Classless Static Route
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
8
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:03:06:0c:0f:1c:42:79
8
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
82
Dec
ΠΠΏΡΠΈΡ 82, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ MAC Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° β ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ β ΠΏΠΎΡΡ ΡΠ²ΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ DHCPΠ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Β«Π²Π»ΠΎΠΆΠ΅Π½ΡΒ» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.ΠΠ΅ΡΠ²ΡΠΉ Π±Π°ΠΉΡ β Π½ΠΎΠΌΠ΅Ρ Β«ΠΏΠΎΠ΄ΠΎΠΏΡΠΈΠΈΒ», Π²ΡΠΎΡΠΎΠΉ Π΅Ρ Π΄Π»ΠΈΠ½Π°, Π΄Π°Π»Π΅Π΅ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΎΠΏΡΠΈΠΈ 82, Π²Π»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΎΠΏΡΠΈΠΈ:
Agent Circuit ID = 00:04:00:01:00:04, Π³Π΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° Π±Π°ΠΉΡΠ° β ΠΏΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° DHCP Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ΅Π» Π·Π°ΠΏΡΠΎΡ
Agent Remote ID = 00:06:c8:be:19:93:11:48 β MAC Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ° DHCP
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
18
Dec
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:06
00:04:00:01:00:04
02:08
00:06:c8:be:19:93:11:48
Hex
ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
255
Dec
1
255 ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
DHCPOFFER
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ DHCPDISCOVER ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π²ΠΈΠ΄ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ, ΡΠΎ ΠΎΠ½ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΎΡΠ²Π΅Ρ β DHCPDISCOVER. ΠΡΠ²Π΅Ρ Π²ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΏΠΎΡΡ Β«ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΈΡΠ΅Π»Β», Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠΎΠΌ, Ρ.ΠΊ. Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΅ΡΠ΅ Π½Π΅Ρ IP Π°Π΄ΡΠ΅ΡΠ°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΡΠΎΡΠ»Π°Π½ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ»ΠΈΠ΅Π½Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΡΠΎ ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΏΠΎ MAC ΡΠ²ΠΎΠ΅ΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π° ΡΠ°ΠΊ-ΠΆΠ΅ Π½ΠΎΠΌΠ΅ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
Π’Π°Π±Π»ΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCPOFFER
ΠΠΎΠ·ΠΈΡΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠ΅)
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΠΉΡ
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
1
Boot Request
1
Hex
1
Π’ΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. 1 β Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, 2 β ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ
2
Hardware type
1
Hex
1
Π’ΠΈΠΏ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ 1 β MAC
3
Hardware adrees length
6
Hex
1
ΠΠ»ΠΈΠ½Π° MAC Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
4
Hops
1
Hex
1
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΠΌΠ°ΡΡΡΡΡΠΎΠ²
5
Transaction ID
23:cf:de:1d
Hex
4
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°
7
Second elapsed
0
Hex
4
ΠΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°
9
Bootp flags
0
Hex
2
ΠΠ΅ΠΊΠΈΠ΅ ΡΠ»Π°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, 0 β ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΈΠΏ Π·Π°ΠΏΡΠΎΡΠ° Unicast
11
Client IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
15
Your client IP address
172.16.134.61
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
19
Next server IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½)
23
Relay agent IP address
172.16.114.41
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ Π°Π³Π΅Π½ΡΠ° ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΠΈΡΠ°)
27
Client MAC address
14:d6:4d:a7:c9:55
Hex
6
MAC Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΊΠ»ΠΈΠ΅Π½ΡΠ°)
31
Client hardware address padding
Hex
10
ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π·Π°Π±ΠΈΡΠΎ Π½ΡΠ»ΡΠΌΠΈ
41
Server host name
Π‘ΡΡΠΎΠΊΠ°
64
ΠΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP. ΠΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ
105
Boot file name
Π‘ΡΡΠΎΠΊΠ°
128
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π±Π΅Π·Π΄ΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΡΡΠ°Π½ΡΠΈΡΠΌΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
235
Magic cookie
63:82:53:63
Hex
4
Β«ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» ΡΠΈΡΠ»ΠΎ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² Ρ.Ρ. ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ β ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ DHCP
ΠΠΏΡΠΈΠΈ DHCP. ΠΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
236
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
53
Dec
1
ΠΠΏΡΠΈΡ 53, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΡΠΈΠΏ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCP 2 β DHCPOFFER
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
2
Dec
1
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠ°ΡΠΊΡ ΡΠ΅ΡΠΈ
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
255.255.224.0
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
3
Dec
1
ΠΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ»ΡΠ· ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
172.16.12.1
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
6
Dec
1
ΠΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΡ DNS
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
8.8.8.8
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
51
Dec
1
ΠΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠ΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ DHCP ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΡ
ΡΠ½ΠΎΠ²Π°
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
86400
Dec
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
82
Dec
1
ΠΠΏΡΠΈΡ 82, ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΡΠ»ΠΎ Π² DHCPDISCOVER
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
18
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:08:00:06:00
01:01:00:00:01
02:06:00:03:0f
26:4d:ec
Dec
18
ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
255
Dec
1
255 ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
DHCPREQUEST
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΡ DHCPOFFER, ΠΎΠ½ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅Ρ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΆΠ΅ Π½Π΅ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ DHCP Π² ΡΠ΅ΡΠΈ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DHCPOFFER ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ, Π΅ΠΌΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Β«ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡΒ». ΠΡΠΈΡΠ΅ΡΠΈΠΈ Β«ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡΒ» ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ MAC Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP. Π’Π°ΠΊ-ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ DHCPREQUEST ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ»Π°Π½ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ Π±Π΅Π· ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π½Π΅Π΅ DHCPDISCOVER, Π΅ΡΠ»ΠΈ IP Π°Π΄ΡΠ΅Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΆΠ΅ ΡΠ°Π½Π΅Π΅ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Π±ΡΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½.
Π’Π°Π±Π»ΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCPREQUEST
ΠΠΎΠ·ΠΈΡΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠ΅)
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΠΉΡ
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
1
Boot Request
1
Hex
1
Π’ΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. 1 β Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, 2 β ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ
2
Hardware type
1
Hex
1
Π’ΠΈΠΏ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ 1 β MAC
3
Hardware adrees length
6
Hex
1
ΠΠ»ΠΈΠ½Π° MAC Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
4
Hops
1
Hex
1
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΠΌΠ°ΡΡΡΡΡΠΎΠ²
5
Transaction ID
23:cf:de:1d
Hex
4
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°
7
Second elapsed
0
Hex
4
ΠΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°
9
Bootp flags
8000
Hex
2
ΠΠ΅ΠΊΠΈΠ΅ ΡΠ»Π°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ». Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΎ Β«Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΒ»
11
Client IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
15
Your client IP address
172.16.134.61
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
19
Next server IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½)
23
Relay agent IP address
172.16.114.41
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ Π°Π³Π΅Π½ΡΠ° ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΠΈΡΠ°)
27
Client MAC address
14:d6:4d:a7:c9:55
Hex
6
MAC Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΊΠ»ΠΈΠ΅Π½ΡΠ°)
31
Client hardware address padding
Hex
10
ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π·Π°Π±ΠΈΡΠΎ Π½ΡΠ»ΡΠΌΠΈ
41
Server host name
Π‘ΡΡΠΎΠΊΠ°
64
ΠΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP. ΠΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ
105
Boot file name
Π‘ΡΡΠΎΠΊΠ°
128
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π±Π΅Π·Π΄ΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΡΡΠ°Π½ΡΠΈΡΠΌΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
235
Magic cookie
63:82:53:63
Hex
4
Β«ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» ΡΠΈΡΠ»ΠΎ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² Ρ.Ρ. ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ β ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ DHCP
ΠΠΏΡΠΈΠΈ DHCP. ΠΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
236
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
53
Dec
3
ΠΠΏΡΠΈΡ 53, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΡΠΈΠΏ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCP 3 β DHCPREQUEST
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
3
Dec
1
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
61
Dec
1
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°: 01 (Π΄Π»Ρ Ehernet) + MAC Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
7
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:2c:ab:25:ff:72:a6
Hex
7
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
60
Dec
Β«Vendor class identifierΒ». Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠΎΠ±Π°Π΅Ρ Π²Π΅ΡΡΠΈΡ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅. Windows Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ MSFT 5.0
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
11
Dec
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
udhcp 0.9.8
Π‘ΡΡΠΎΠΊΠ°
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
55
1
ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π‘ΠΎΡΡΠ°Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ
01 β ΠΠ°ΡΠΊΠ° ΡΠ΅ΡΠΈ
03 β Π¨Π»ΡΠ·
06 β DNS
oc β ΠΠΌΡ Ρ
ΠΎΡΡΠ°
0f β ΠΈΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π° ΡΠ΅ΡΠΈ
1c β Π°Π΄ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° (Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠ°)
42 β ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° TFTP
79 β Classless Static Route
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
8
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:03:06:0c:0f:1c:42:79
8
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
82
Dec
1
ΠΠΏΡΠΈΡ 82, ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΡΠ»ΠΎ Π² DHCPDISCOVER
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
18
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:08:00:06:00
01:01:00:00:01
02:06:00:03:0f
26:4d:ec
Dec
18
ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
255
Dec
1
255 ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
DHCPACK
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Β«Π΄Π° ΡΠΎΡΠ½ΠΎ, ΡΡΠΎ ΡΠ²ΠΎΠΉ IP Π°Π΄ΡΠ΅Ρ, ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Ρ Π΅Π³ΠΎ Π½ΠΈΠΊΠΎΠΌΡ Π½Π΅ Π²ΡΠ΄Π°ΠΌΒ» ΠΎΡ DHCP ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ»ΡΠΆΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DHCPACK ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ. ΠΠ½ ΡΠ°ΠΊ-ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π²ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ. Π₯ΠΎΡΡ, Π² Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ DHCP ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Python, Ρ Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ Π΄ΡΠ±Π»ΠΈΡΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ IP ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½. ΠΡΠΈΡΠ΅ΠΌ DHCP ΡΠ΅ΡΠ²Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ Π²ΠΎΠ»Π½ΡΠ΅Ρ, Π΄ΠΎΡΠ΅Π» Π»ΠΈ Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠ°ΠΊΠ΅Ρ DHCPACK. ΠΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ DHCPACK, ΡΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ DHCPREQUEST
Π’Π°Π±Π»ΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCPACK
ΠΠΎΠ·ΠΈΡΠΈΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠ΅)
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΠΉΡ
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
1
Boot Request
2
Hex
1
Π’ΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. 1 β Π·Π°ΠΏΡΠΎΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, 2 β ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ
2
Hardware type
1
Hex
1
Π’ΠΈΠΏ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ 1 β MAC
3
Hardware adrees length
6
Hex
1
ΠΠ»ΠΈΠ½Π° MAC Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
4
Hops
1
Hex
1
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
ΠΌΠ°ΡΡΡΡΡΠΎΠ²
5
Transaction ID
23:cf:de:1d
Hex
4
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°
7
Second elapsed
0
Hex
4
ΠΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°
9
Bootp flags
8000
Hex
2
ΠΠ΅ΠΊΠΈΠ΅ ΡΠ»Π°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ». Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΎ Β«Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΒ»
11
Client IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
15
Your client IP address
172.16.134.61
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ)
19
Next server IP address
0.0.0.0
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½)
23
Relay agent IP address
172.16.114.41
Π‘ΡΡΠΎΠΊΠ°
4
IP Π°Π΄ΡΠ΅Ρ Π°Π³Π΅Π½ΡΠ° ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΠΈΡΠ°)
27
Client MAC address
14:d6:4d:a7:c9:55
Hex
6
MAC Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° (ΠΊΠ»ΠΈΠ΅Π½ΡΠ°)
31
Client hardware address padding
Hex
10
ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π·Π°Π±ΠΈΡΠΎ Π½ΡΠ»ΡΠΌΠΈ
41
Server host name
Π‘ΡΡΠΎΠΊΠ°
64
ΠΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° DHCP. ΠΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ
105
Boot file name
Π‘ΡΡΠΎΠΊΠ°
128
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π±Π΅Π·Π΄ΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΡΡΠ°Π½ΡΠΈΡΠΌΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
235
Magic cookie
63:82:53:63
Hex
4
Β«ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» ΡΠΈΡΠ»ΠΎ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² Ρ.Ρ. ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ β ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ DHCP
ΠΠΏΡΠΈΠΈ DHCP. ΠΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
236
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
53
Dec
3
ΠΠΏΡΠΈΡ 53, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ°Ρ ΡΠΈΠΏ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCP 5 β DHCPACK
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
5
Dec
1
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
1
Dec
1
ΠΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠ°ΡΠΊΡ ΡΠ΅ΡΠΈ
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
255.255.224.0
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
3
Dec
1
ΠΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΡΠ»ΡΠ· ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
172.16.12.1
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
6
Dec
1
ΠΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ DHCP ΠΊΠ»ΠΈΠ΅Π½ΡΡ DNS
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
8.8.8.8
Π‘ΡΡΠΎΠΊΠ°
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
51
Dec
1
ΠΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠ΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ DHCP ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΡ
ΡΠ½ΠΎΠ²Π°
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
4
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
86400
Dec
4
ΠΠΎΠΌΠ΅Ρ ΠΎΠΏΡΠΈΠΈ
82
Dec
1
ΠΠΏΡΠΈΡ 82, ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΡΠ»ΠΎ Π² DHCPDISCOVER
ΠΠ»ΠΈΠ½Π° ΠΎΠΏΡΠΈΠΈ
18
Dec
1
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
01:08:00:06:00
01:01:00:00:01
02:06:00:03:0f
26:4d:ec
Dec
18
ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
255
Dec
1
255 ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ python Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΡΠΎ MySQL ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Π°.
FreeBSD
pkg install python3 python3 -m ensurepip pip3 install mysql-connector
Ubuntu
sudo apt-get install python3 sudo apt-get install pip3 sudo pip3 install mysql-connector
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΠ MySQL, Π·Π°Π»ΠΈΠ²Π°Π΅ΠΌ Π² Π½Π΅Ρ Π΄Π°ΠΌΠΏ pydhcp.sql, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π»Π΅ΠΆΠ°Ρ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΎΡΠΌΠ°ΡΠ° xml. ΠΡΠ°Π»ΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»:
<?xml version="1.0" ?> <config> <dhcpserver> <host>0.0.0.0</host> <broadcast>255.255.255.255</broadcast> <DHCPServer>192.168.0.71</DHCPServer> <LeaseTime>8600</LeaseTime> <ThreadLimit>1</ThreadLimit> <defaultMask>255.255.255.0</defaultMask> <defaultRouter>192.168.0.1</defaultRouter> <defaultDNS>8.8.8.8</defaultDNS> </dhcpserver> <mysql> <host>localhost</host> <username>test</username> <password>test</password> <basename>pydhcp</basename> </mysql> <options> <option>option_82_hex:sw_port1:20:22</option> <option>option_82_hex:sw_port2:16:18</option> <option>option_82_hex:sw_mac:26:40</option> </options> <query> <offer_count>3</offer_count> <offer_1>select ip,mask,router,dns from users where upper(mac)=upper('{option_82_AgentRemoteId_hex}') and upper(port)=upper('{option_82_AgentCircuitId_port_hex}')</offer_1> <offer_2>select ip,mask,router,dns from users where upper(mac)=upper('{sw_mac}') and upper(port)=upper('{sw_port2}')</offer_2> <offer_3>select ip,mask,router,dns from users where upper(mac)=upper('{ClientMacAddress}')</offer_3> <history_sql>insert into history (id,dt,mac,ip,comment) values (null,now(),'{ClientMacAddress}','{RequestedIpAddress}','DHCPACK/INFORM')</history_sql> </query> </config>
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΠΎ ΡΠ΅Π³Π°ΠΌ:
Π‘Π΅ΠΊΡΠΈΡ dhcpserver ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
- host β ΠΊΠ°ΠΊΠΎΠΉ ip Π°Π΄ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΏΠΎΡΡΡ 67
- broadcast β ΠΊΠ°ΠΊΠΎΠΉ ip ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠΎΠΌ Π΄Π»Ρ DHCPOFFER ΠΈ DHCPACK
- DHCPServer β ΠΊΠ°ΠΊΠΎΠΉ ip Ρ DHCP ΡΠ΅ΡΠ²Π΅ΡΠ°
- LeaseTime Π²ΡΠ΅ΠΌΡ Π°ΡΠ΅Π½Π΄Ρ Π²ΡΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ip Π°Π΄ΡΠ΅ΡΠ°
- ThreadLimit β ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² UDP Π½Π° ΠΏΠΎΡΡΡ 67. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π° Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ π
- defaultMask,defaultRouter,defaultDNS β ΡΠΎ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π°Π±ΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ IP Π² Π±Π°Π·Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ
Π‘Π΅ΠΊΡΠΈΡ mysql:
host,username,password,basename β Π²ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅Π±Ρ. ΠΡΠΈΠΌΠ΅ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π²ΡΠ»ΠΎΠΆΠ΅Π½Π° Π½Π°
Π‘Π΅ΠΊΡΠΈΡ query: Π·Π΄Π΅ΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ OFFER/ACK:
- offer_count β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΈΠ΄Π° ip,mask,router,dns
- offer_n β ΡΡΡΠΎΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ β ΠΏΡΡΡΠΎ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ offer
- history_sql β Π·Π°ΠΏΡΠΎΡ ΠΏΠΈΡΡΡΠΈΠΉ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Β«ΠΈΡΡΠΎΡΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈΒ» ΠΏΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΡ
Π Π·Π°ΠΏΡΠΎΡΠ°Ρ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ options ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΈ ΠΈΠ· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° DHCP.
Π‘Π΅ΠΊΡΠΈΡ options. ΠΠΎΡ ΡΡΡ ΡΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅. Π’ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΠΈΠΈ query.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
option_82_hex:sw_port1:20:22
, ΡΡΠ° ΡΡΡΠΎΡΠΊΠ°-ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π·ΡΡΡ Π²ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠΈΡΠ΅Π΄ΡΡΡ Π² DHCP Π·Π°ΠΏΡΠΎΡΠ΅ ΠΎΠΏΡΠΈΠΈ 82, Π² ΡΠΎΡΠΌΠ°ΡΠ΅ hex, Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Ρ 20 ΠΏΠΎ 22 Π±Π°ΠΉΡ ΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΅Ρ Π² Π½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sw_port1 (ΠΏΠΎΡΡ ΡΠ²ΠΈΡΠ° ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΈΡΠ΅Π» Π·Π°ΠΏΡΠΎΡ)
option_82_hex:sw_mac:26:40
, ΠΎΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sw_mac, Π²Π·ΡΠ² hex ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 26:40
Π£Π²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°ΠΏΡΠΎΡΠ°Ρ , ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΊΠ»ΡΡΠ΅ΠΌ -d. Π£Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ Π»ΠΎΠ³:
--ΠΏΡΠΈΡΠ΅Π» ΠΏΠ°ΠΊΠ΅Ρ DHCPINFORM Π½Π° 67 ΠΏΠΎΡΡ,ΠΎΡ 0025224ad764 , b'x91xa5xe0xa3xa5xa9-x8fx8a' , ('172.30.114.25', 68) {'ClientMacAddress': '0025224ad764', 'ClientMacAddressByte': b'x00%"Jxd7d', 'HType': 'Ethernet', 'HostName': b'x91xa5xe0xa3xa5xa9-x8fx8a', 'ReqListDNS': True, 'ReqListDomainName': True, 'ReqListPerfowmRouterDiscover': True, 'ReqListRouter': True, 'ReqListStaticRoute': True, 'ReqListSubnetMask': True, 'ReqListVendorSpecInfo': 43, 'RequestedIpAddress': '0.0.0.0', 'Vendor': b'MSFT 5.0', 'chaddr': '0025224ad764', 'ciaddr': '172.30.128.13', 'flags': b'x00x00', 'giaddr': '172.30.114.25', 'gpoz': 308, 'hlen': 6, 'hops': 1, 'htype': 'MAC', 'magic_cookie': b'cx82Sc', 'op': 'DHCPINFORM', 'option12': 12, 'option53': 53, 'option55': 55, 'option60': 60, 'option61': 61, 'option82': 82, 'option_82_byte': b'x12x01x06x00x04x00x01x00x06x02x08x00' b'x06x00x1eXx9exb2xad', 'option_82_hex': '12010600040001000602080006001e589eb2ad', 'option_82_len': 18, 'option_82_str': "b'x12x01x06x00x04x00x01x00x06x02x08x00x06x00x1eXx9exb2xad'", 'result': False, 'secs': 768, 'siaddr': '0.0.0.0', 'sw_mac': '001e589eb2ad', 'sw_port1': '06', 'xidbyte': b'<x89}x8c', 'xidhex': '3c897d8c', 'yiaddr': '0.0.0.0'}
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΡΠ±ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π² {} ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π² SQL Π·Π°ΠΏΡΠΎΡΠ΅.
ΠΠ°ΠΏΠ΅ΡΠ°ΡΠ»ΠΈΠΌ Π΄Π»Ρ ΠΈΡΡΠΎΡΠΈΠΈ, ΡΡΠΎ IP Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»:
ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°
./pydhcpdb.py -d -c config.xml
β d ΡΠ΅ΠΆΠΈΠΌ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ DEBUG
β c <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°> ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»
Π Π°Π·Π±ΠΎΡ ΠΏΠΎΠ»Π΅ΡΠΎΠ²
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Python. ΠΡΠΎ Π±ΠΎΠ»Ρ. Python ΠΈΠ·ΡΡΠ°Π»ΡΡ Β«Π½Π° Π»Π΅ΡΡΒ». ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΠ΄Π΅Π»Π°Π½Ρ Π² ΡΡΠΈΠ»Π΅: Β«ΡΡ ΡΡ, ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ». Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Ρ, ΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ·-Π·Π° ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° python. ΠΡΡΠ°Π½ΠΎΠ²Π»ΡΡΡ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Β«ΠΊΠΎΠ΄Π΅Β».
ΠΠ°ΡΡΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ XML
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Python xml.dom. ΠΡΠΎΠ΄Π΅ Π±Ρ ΠΈ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΡΡΠΈΠΌΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ ΡΠΎΠ»ΠΊΠΎΠ²ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π² ΡΠ΅ΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
tree = minidom.parse(gconfig["config_file"]) mconfig=tree.getElementsByTagName("mysql") for elem in mconfig: gconfig["mysql_host"]=elem.getElementsByTagName("host")[0].firstChild.data gconfig["mysql_username"]=elem.getElementsByTagName("username")[0].firstChild.data gconfig["mysql_password"]=elem.getElementsByTagName("password")[0].firstChild.data gconfig["mysql_basename"]=elem.getElementsByTagName("basename")[0].firstChild.data dconfig=tree.getElementsByTagName("dhcpserver") for elem in dconfig: gconfig["broadcast"]=elem.getElementsByTagName("broadcast")[0].firstChild.data gconfig["dhcp_host"]=elem.getElementsByTagName("host")[0].firstChild.data gconfig["dhcp_LeaseTime"]=elem.getElementsByTagName("LeaseTime")[0].firstChild.data gconfig["dhcp_ThreadLimit"]=int(elem.getElementsByTagName("ThreadLimit")[0].firstChild.data) gconfig["dhcp_Server"]=elem.getElementsByTagName("DHCPServer")[0].firstChild.data gconfig["dhcp_defaultMask"]=elem.getElementsByTagName("defaultMask")[0].firstChild.data gconfig["dhcp_defaultRouter"]=elem.getElementsByTagName("defaultRouter")[0].firstChild.data gconfig["dhcp_defaultDNS"]=elem.getElementsByTagName("defaultDNS")[0].firstChild.data qconfig=tree.getElementsByTagName("query") for elem in qconfig: gconfig["offer_count"]=elem.getElementsByTagName("offer_count")[0].firstChild.data for num in range(int(gconfig["offer_count"])): gconfig["offer_"+str(num+1)]=elem.getElementsByTagName("offer_"+str(num+1))[0].firstChild.data gconfig["history_sql"]=elem.getElementsByTagName("history_sql")[0].firstChild.data options=tree.getElementsByTagName("options") for elem in options: node=elem.getElementsByTagName("option") for options in node: optionsMod.append(options.firstChild.data)
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ
ΠΠ°ΠΊ Π½ΠΈ ΡΡΡΠ°Π½Π½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Python ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ.
def PacketWork(data,addr): ... # ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·Π±ΠΎΡΠ° ΠΏΡΠΈΡΠ΅Π΄ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π½Π΅Π³ΠΎ ... while True: data, addr = udp_socket.recvfrom(1024) # ΠΆΠ΄Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ UDP thread = threading.Thread(target=PacketWork, args=(data,addr,)).start() # ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ΅Π» - Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π² ΡΠΎΠ½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΡ PacketWork Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ while threading.active_count() >gconfig["dhcp_ThreadLimit"]: time.sleep(1) # Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ , ΠΆΠ΄Π΅ΠΌ ΠΏΠΎΠΊΠ° ΠΈΡ ΡΡΠ°Π½Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅
ΠΡΠΈΠ΅ΠΌ/ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° DHCP
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ UDP ΠΈΠ΄ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°ΡΡΡ, Π½ΡΠΆΠ½ΠΎ Β«ΠΏΠΎΠ΄Π½ΡΡΡΒ» ΡΠΎΠΊΠ΅Ρ:
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP) udp_socket.bind((gconfig["dhcp_host"],67))
, Π³Π΄Π΅ ΡΠ»Π°Π³ΠΈ:
- AF_INET β ΠΎΠ·Π½Π°ΡΠ΅Ρ ΡΡΠΎ ΡΠΎΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ IP: ΠΏΠΎΡΡ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅ΡΠ΅ AF_UNIX β Π³Π΄Π΅ Π°Π΄ΡΠ΅Ρ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π°.
- SOCK_DGRAM β ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π½Π΅ Β«ΡΡΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΒ», Π° ΡΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΡΠ΅Π²ΠΎΠ», ΠΈ Ρ ΠΎΠ±ΡΠ΅Π·Π°Π½Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ. Π’.Π΅. ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ UDP Π±Π΅Π· Β«ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉΒ» ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΎΠ±Π΅ΡΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° UDP. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ SOCK_RAW, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΠ΅ ΠΏΠ°ΡΡΠΈΡΡ ΠΈ ΡΡΠΎ Β«ΠΎΠ±Π΅ΡΡΠΊΡΒ».
ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠΎΠΌ:
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) #ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠΊΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠ° rz=udp_socket.sendto(packetack, (gconfig["broadcast"],68))
, ΡΠ°ΠΊ ΠΈ Π½Π° Π°Π΄ΡΠ΅Ρ, Β«ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΈΡΠ΅Π» ΠΏΠ°ΠΊΠ΅ΡΒ»:
udp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠΊΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ "ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Π΅ΡΠ΅Π»Π΅ΠΉ" rz=udp_socket.sendto(packetack, addr)
, Π³Π΄Π΅ SOL_SOCKET ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Β» Π΄Π»Ρ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΉ,
, SO_BROADCAST ΠΎΠΏΡΠΈΡ ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ»Π΅ΠΌ Β«Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠΎΠΌΒ»
,SO_REUSEADDR ΠΎΠΏΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ ΡΠΎΠΊΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ Β«ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉΒ». ΠΠΎ ΠΈΠ΄Π΅Π΅ ΠΎΠ½Π° Π½Π΅Π½ΡΠΆΠ½Π° Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² FreeBSD, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π», Π±Π΅Π· ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠ΄ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π».
Π Π°Π·Π±ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° DHCP
ΠΠΎΡ ΡΡΡ ΠΌΠ½Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ Python. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· Β«ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ» ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠΎΠ·Π²ΠΎΠ»ΡΡ Π΅Π³ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΡΠΎΠΊΠΈ ΠΈ hex β Ρ.Π΅. ΡΠΎ ΡΡΠΎ Π½Π°ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π’Π°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π±Π°ΠΉΡ Π² HEX ΠΈ ΠΏΡΠΎΡΡΠΎ Π±Π°ΠΉΡΠ°Ρ :
res["xidhex"]=data[4:8].hex() res["xidbyte"]=data[4:8]
, ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π±Π°ΠΉΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ:
res["flags"]=pack('BB',data[10],data[11])
ΠΠΎΠ»ΡΡΠΈΡΡ IP ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ:
res["ciaddr"]=socket.inet_ntoa(pack('BBBB',data[12],data[13],data[14],data[15]));
Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ:
res=res+socket.inet_pton(socket.AF_INET, gconfig["dhcp_Server"])
ΠΠ° ΡΡΠΎΠΌ Π²ΡΡ π
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com