á¨áá
ááŽáááľ ááááĄ-
- á IPv4 á ááłá¨áá¨áĽ áá áľá DHCP ááá
- Python ááá (á¨áŁáś áľáá˝ áá ááŁá đ)
- á¨á áááá ááľá
DB2DHCP (á¨áĽá ášáŤ) ᣠáŚáŞá áááĽáá áá á˛áą áľááá° ááá ááááŁá á áá áἠá áľá¸á᪠áĽá¨áá ááĽáˇá. áĽá "á áá áááááĽ" ááá ááááľ áĽáá°áá áááľáŽá˝ áááá á ááá°áá. - á¨á˛á¤á˝á˛á á áááá ááááľ á¨á°áááá˘áá á áá á áľáŤáť á¨á°áááá˘áá áá á áá áá ááá á¨áá+áá°áĽ áĽááá ááá¨á (á ááŤá 82)
- áá áĽáľáááľ ááťá (áŚá ! áá á¨áĽá á°ááłá áĽáá áľáá´ áá)
- á ááĽáááĽá (ááá á á°áťá áááł ááĽáŁ) áá áľá ááἠáĽá á á áľá°áŤá¨áľ á ááá á áá đ
áá¤áľáĄ á¨áá°áŤá đ á FreeBSD áĽá Ubuntu OS áá á°ááľááᢠá ááľá ááłáĽ, áŽáą á ááááá áľááá° ááá áľá áĽáá˛á°áŤ áá á¨á
áá˝áá, ááááŤáąá á áŽáą ááľáĽ ááá áአáá°áŞáŤáá˝ áŤá á áááľááá˘
á áĽááá! ááá áĽá áááŁáá˘
áá áá°áŽá˝ áá¨ááť á ááá
"áááľááá ááĽááľ" áá¤áąá á¨ááŤá, á¨áááá áĽá á¨áá áá áá°áľ á áŁá áŤáá° áá, áĽá á¨á፠áľá DHCP ááŽáśáŽá áľáá˝ ááľá ááłáĽ. ááŤá´á˘ áĽá ááłáŞá đ
áľáá˝ ááľá ááłáĽ
DHCP áááľá áá?
áá á ááľ ááŁáŞáŤ á¨á áá á áľáŤáťáá (áĽá ááá˝ áĽáá° ááľááᣠᲠá¤á á¤áľáŁ ááá° á¨ááłá°ááľá áááááá˝) á¨DHCP á áááá áĽáá˛áŤáá á¨ááŤáľá˝á á¨á ááłá¨ áá¨áĽ ááŽáśáŽá ááᢠáĽá˝áá˝ á¨áááááĄáľ ᨠUDP ááŽáśáŽáá á áá áá ááᢠá¨ááľááá áááŞáŤáá˝á á áá ááá áľ áá á¨ááłáŞáŤá á á ááá á¨á á áŤá ááá áĽáá°áá¨á°áá áá á˘
- ááłáŞáŤá (á°áá á) ᨠUDP áľáááľ áĽáŤáá (DHCPDISCOVER) á ááá á ááłá¨ áá¨áĄ áá âáĽáşáŁ á ááľ á°á á¨á áá á áľáŤáť áľá áâ á ááá áĽáŤá áááŤáᢠá¨áá á á áá áĽááá áá (ááá áá áááá á áá°áá) áĽáŤáá á¨áá¨á°á°á á¨áá°áĽ 68 (ááá) á˛áá ááľá¨áťá áá°áĽ 67 (ááľá¨áť) áá. á ááłááľ ááłáŞáŤáá˝ áĽá áá˝á áá°áĽ 67 áááŤáᢠá¨á°áá á ááłáŞáŤá á¨áá á áľáŤáť á DHCPDISCOVER áĽá á ááľáĽ á°áŤáľáˇáá˘
- á ááľááአáá á¨ááááľ ááá á¨DHCP á ááááŽá˝ (áĽá á ááŤáśá˝ ááአáá˝áá) DHCPDISCOVERá ááá¨á ááłáŞáŤ á¨DHCPOFFER á á ááŚáľ á¨ááľááá ááźáśá˝ áá ááá°ááłá áĽá á ááľááአááá áŤá°áŤáŠáłáᢠáá ááŹáľ ááá áĽáá°áłá°á ááá¨áľ áá°á á˛á á DHCPDISCOVER áĽáŤá á áá¨á á á¨á°áá áá MAC á áľáŤáť áá°á¨áľ ááá˘
- á°áá áá áá ááłá¨ áá¨áĽ á áá áśá˝ ááŽááá áŤáá¸áá ááŹáśá˝ ááá áá ᣠá áŁá ááŤáŞáá ááááŁá (ááľáááśáš á¨á°áᨠááá áá˝áá ᣠáááłá ᣠá¨ááŹáľ áá á¨á˘áŤ áá ᣠââá¨ááŤá¨áá ááááśá˝ áĽááľ) áĽá á¨á ááłá¨ áá¨áĽ á ááĽáŽá˝ áá DHCPREQUEST á¨ááá°á á¨DHCP á ááááᢠá áá á ááŁá ááŹá áá° á ááľ á¨á°áá°á ᨠDHCP á áááá áááłáá˘
- DHCPREQUEST á¨á°áá áá á áááá á¨DHCPACK á áá¸áľ ááŹáľ áááŤáᣠá áá ááľáĽ ááá á°áá á á¨áłá°áĄáľá á¨á ááłá¨ áá¨áĽ á ááĽáŽá˝ á áľáá ááá¨ááŤáá˘
á á°á¨ááŞá á¨á°áá áá á¨ááᥠDHCPINFORM áĽá˝áá˝ á á áĽá á ááá "á°áá áá á á
áááľ áĽááłá" áĽá á¨á°á°á áá á¨ááľááá ááźáľ áĽá¨á°á áá áááá áDHCP á áááá ááłáá
áá. á áá
á áááá á á°ááŁá á ááľáĽ áĽááá
áĽá˝áá˝ á˝á ááŁááá˘
á¨áĽá á á áá¸áľ
á á á ááá á¨á¤á°áááľ ááŹáľ ááŹá áá á áááľááá˘
á áĽá áá᳠ᣠáŤá OSI ááĽááĽá ááŽáśáŽá áŤáľááὠᣠáááľá ᨠDHCP ááá
á ᣠᨠUDP ááŹáľ áááśá˝ á ááĽáł áááĄá áĽáť áĽáááá¨áłááá˘
DHCPDIScover
áľááá áá ááľ ááłáŞáŤ á¨á áá á áľáŤáť á¨ááááľ áá°áľ á¨áááá¨á á¨DHCP á°áá á á¨áľáááľ áĽáŤáá á¨áá°áĽ 68 áá° 255.255.255.255:67 á ááá ááááŤáᢠá áá áĽá á ááľáĽ á°áá áá ᨠMAC á áľáŤáťáá áĽá áĽáá˛áá ᨠDHCP á áááá á áľááá ááá á á¨áááááá áŤáŤáľáłáᢠá¨áĽá á ááá á á¨áá á áłá˝ áŁáá á áá á¨áĽ ááľáĽ á°áááżá.
á¨DHCPDISCOVER áĽá á á áááá á áá á¨áĽ
á áĽá
á ááľáĽ á ááááĽ
á¨áĽá´áľ áľá
áááłá:
ááá˘áŤ
áŁááľ
ááĽáŤáŞáŤ áĄáĄ
1
á¨ááľááť áĽáŤá
1
áááľ
1
á¨áááĽááľ á áááľá˘ 1 - á¨á°áá á áá° á áááá áĽáŤá ᣠ2 - á¨á áááá áá° á°áá á ááá˝
2
á¨áááľáá á áááľ
1
áááľ
1
á¨áááľáá á áľáŤáť á áááľ, á áá
ááŽáśáŽá 1 - MAC
3
á¨áááľáá á áľáŤáťáá˝ ááááľ
6
áááľ
1
á¨ááŁáŞáŤ MAC á áľáŤáť ááááľ
4
áĽá¨á°áá°á¨á°á¨
1
áááľ
1
á¨ááŤá¨ááá ááľááŽá˝ áĽááľ
5
á¨ááĽááľ ááłáááŤ
23áĄcfáĄdeáĄ1d
áááľ
4
áአá¨ááĽááľ áááŤá˘ á áĽáŤáá ááááŞáŤ áá á á°áá áá á¨á°áá á¨
7
ááá°á á ááá
0
áááľ
4
á áľáŤáť á¨ááááľ áá°áľ á¨á°ááá¨á áľ áá ááᎠá á°á¨ááśá˝ ááľáĽ áá
9
áŁáá˛áŤáá˝á á áľááł
0
áááľ
2
á¨ááŽáśáŽá áááŞáŤáá˝á ááááá¨áľ áááአá¨áá˝á á¨á°áá°á áŁáá˛áŤáá˝
11
á¨á°áá á á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á°áá á á áá á áľáŤáť (áŤá)
15
á¨áĽááľá á°áá á á áá á áľáŤáť
0.0.0.0
ááľáá
4
á á áááአá¨áá¨á á¨á áá á áľáŤáť (áŤá)
19
á¨áááĽáá á áááá á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á áááá á áá á áľáŤáť (á¨ááłáá
á¨áá)
23
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť
172.16.114.41
ááľáá
4
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť (áááłá ᣠááĽáŞáŤ / ááĽááŤ)
27
á¨á°áá á MAC á áľáŤáť
14:d6:4d:a7:c9:55
áááľ
6
á¨ááŹáľ á᪠(á°áá á) MAC á áľáŤáť
31
á¨á°áá á áááľáá á áľáŤáť ááŁá
áááľ
10
á¨á°áŤá ááááŤ. áĽááá áá á ááŽáá˝ á°áááˇáá˘
41
á¨á áááá á áľá°ááá
áľá
ááľáá
64
á¨DHCP á áááá áľá áĽááá áá á áá°áááá
105
á¨ááľááť ááá áľá
ááľáá
128
á áááłá áľ áá á˛áľá á áᣠáŁá˘áŤáá˝ á áá ááá áľ á áááá áá á¨ááá áľá
235
á áľááľ áŠáŞáá˝
63: 82: 53: 63
áááľ
4
"á áľááľ" ááĽá, á áá
áá á¨áľ, á¨ááŽ. áá
ááŹáľ á¨DHCP ááŽáśáŽá áááá ááá
áľá˝ááá
á¨DHCP á ááŤáŽá˝á˘ á ááááá á á°á á°á¨á°á áááľ áá˝ááá˘
236
á¨á ááŤá ááĽá
53
á˛á´
1
á ááŤá 53ᣠá¨DHCP ááŹáľ á áááľá á¨áááá˝
1 - DHCPDIScover
3 - DHCPREQUEST
2 - DHCPOffer
5 - DHCPACK
8 - DHCPINFORM
á¨á ááŤá ááááľ
1
á˛á´
1
á¨á ááŤá áá
1
á˛á´
1
á¨á ááŤá ááĽá
50
á˛á´
1
á°áá áá áá ááááľ á á á á áľáŤáť ááá á ááááá?
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
172.16.134.61
ááľáá
4
á¨á ááŤá ááĽá
55
1
á á°áá áá á¨á°á á¨á á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝á˘ á
ááĽá áááŤá áá˝ááá˘
01 - á¨á ááłá¨ áá¨áĽ áááĽá
03 - áá°ááááŤ
06 - Რá¤á á¤áľ
oc - á¨á áľá°ááá
áľá
0f - á¨á ááłá¨ áá¨áĽ áľá
1c - á¨áľáááľ áĽáŤá á áľáŤáť (áľáááľ)
42 - ᨠTFTP á áááá áľá
79 - ááá á¨ááá á¨áááááłááľ ááááľ
á¨á ááŤá ááááľ
8
1
á¨á ááŤá áá
01:03:06:0c:0f:1c:42:79
8
á¨á ááŤá ááĽá
82
á˛á´
á ááŤá 82, áá
á á¨á°á°ááá ááłáŞáŤáá MAC á áľáŤáť áĽá á ááłááľ á°á¨á᪠áĽá´áśá˝á áŤáľá°áááá.
áĽááá áá áá á¨áá¨á¨áťá ᨠDHCP á°áá á á¨áá áŤá áľ á¨ááá¨áŞáŤá áá°áĽ áá áá á ááŤá á°á¨á᪠áááááá˝á ááá á¨ááááŞáŤá áŁáᾠᨠ"áąáŚáá˝á" ááĽá áá, ááá°áá ááááą, á¨ááŤá ááá áá.
á áá
á ááŁááŁá á ááŤá 82áŁáááľ á ááŤáŽáš á áá á°áŤááááá˘
ááŞá á¨áá¨áł ááłáá፠= 00:04:00:01:00:04ᣠá¨áá¨á¨áťááš áááľ áŁááľ áĽáŤáá á¨ááŁá áľ á¨DHCP á°áá á áá°áĽ á˛áá
ááŞá á¨áááľ ááłáá፠= 00:06:c8:be:19:93:11:48 - á¨DHCP á°á°ááá ááŁáŞáŤ áá á áľáŤáť
á¨á ááŤá ááááľ
18
á˛á´
á¨á ááŤá áá
01:06
00:04:00:01:00:04
02:08
00:06:c8:be:19:93:11:48
áááľ
á¨áĽá
á áá¨á¨áť
255
á˛á´
1
255 á¨ááŹáąá áá¨á¨áť áŤááááłá
DHCPOffer
á áááአá¨DHCPDISCOVER ááŹáľ áĽáá°á°áá á áĽá á¨á°á á¨áá á ááľ ááá áá°áá áá ááŤááἠáĽáá°áá˝á áŤá¨áŁ ááĽáą ááá˝ áá°áŁá - DHCPDISCOVERᢠáááš áá° áá°áĽ "á¨ááŁá áľ" áááŤá, á áľáááľ, ááááŤáąá á á áá áá á°áá áá áĽáľáŤáá á¨á áá á áľáŤáť á¨ááá, áľááá ááŹáá á áľáááľ á¨á°áᨠáĽáť ááá á áá˝áá. á°áá áá áá á áĽá á ááľáĽ áŁáá ᨠMAC á áľáŤáťá áĽá áĽáá˛áá á¨ááááŞáŤá áĽá á á ááá áá áľ áá á¨ááŤááá¨á á¨ááĽááľ ááĽá ááĽáą áĽá á áááá áááááŁáá˘
DHCPOFFER á¨ááŹáľ ááá á á°áá á¨áĽ
á áĽá
á ááľáĽ á ááááĽ
á¨áĽá´áľ áľá (á¨á°ááá°)
áááłá:
ááá˘áŤ
áŁááľ
ááĽáŤáŞáŤ áĄáĄ
1
á¨ááľááť áĽáŤá
1
áááľ
1
á¨áááĽááľ á áááľá˘ 1 - á¨á°áá á áá° á áááá áĽáŤá ᣠ2 - á¨á áááá áá° á°áá á ááá˝
2
á¨áááľáá á áááľ
1
áááľ
1
á¨áááľáá á áľáŤáť á áááľ, á áá
ááŽáśáŽá 1 - MAC
3
á¨áááľáá á áľáŤáťáá˝ ááááľ
6
áááľ
1
á¨ááŁáŞáŤ MAC á áľáŤáť ááááľ
4
áĽá¨á°áá°á¨á°á¨
1
áááľ
1
á¨ááŤá¨ááá ááľááŽá˝ áĽááľ
5
á¨ááĽááľ ááłáááŤ
23áĄcfáĄdeáĄ1d
áááľ
4
áአá¨ááĽááľ áááŤá˘ á áĽáŤáá ááááŞáŤ áá á á°áá áá á¨á°áá á¨
7
ááá°á á ááá
0
áááľ
4
á áľáŤáť á¨ááááľ áá°áľ á¨á°ááá¨á áľ áá ááᎠá á°á¨ááśá˝ ááľáĽ áá
9
áŁáá˛áŤáá˝á á áľááł
0
áááľ
2
á¨ááŽáśáŽá áááŞáŤáá˝á ááááá¨áľ áááአá¨áá˝á á¨á°áá°á áŁáá˛áŤáá˝á˘ á áá
á ááŁá 0 áááľ á¨áŠááŤáľáľ áĽáŤá á áááľ áááľ ááá˘
11
á¨á°áá á á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á°áá á á áá á áľáŤáť (áŤá)
15
á¨áĽááľá á°áá á á áá á áľáŤáť
172.16.134.61
ááľáá
4
á á áááአá¨áá¨á á¨á áá á áľáŤáť (áŤá)
19
á¨áááĽáá á áááá á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á áááá á áá á áľáŤáť (á¨ááłáá
á¨áá)
23
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť
172.16.114.41
ááľáá
4
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť (áááłá ᣠááĽáŞáŤ / ááĽááŤ)
27
á¨á°áá á MAC á áľáŤáť
14:d6:4d:a7:c9:55
áááľ
6
á¨ááŹáľ á᪠(á°áá á) MAC á áľáŤáť
31
á¨á°áá á áááľáá á áľáŤáť ááŁá
áááľ
10
á¨á°áŤá ááááŤ. áĽááá áá á ááŽáá˝ á°áááˇáá˘
41
á¨á áááá á áľá°ááá
áľá
ááľáá
64
á¨DHCP á áááá áľá áĽááá áá á áá°áááá
105
á¨ááľááť ááá áľá
ááľáá
128
á áááłá áľ áá á˛áľá á áᣠáŁá˘áŤáá˝ á áá ááá áľ á áááá áá á¨ááá áľá
235
á áľááľ áŠáŞáá˝
63: 82: 53: 63
áááľ
4
"á áľááľ" ááĽá, á áá
áá á¨áľ, á¨ááŽ. áá
ááŹáľ á¨DHCP ááŽáśáŽá áááá ááá
áľá˝ááá
á¨DHCP á ááŤáŽá˝á˘ á ááááá á á°á á°á¨á°á áááľ áá˝ááá˘
236
á¨á ááŤá ááĽá
53
á˛á´
1
á ááŤá 53ᣠá¨DHCP 2 ááŹáľ á áááľá á¨áááá˝ - DHCPOFFER
á¨á ááŤá ááááľ
1
á˛á´
1
á¨á ááŤá áá
2
á˛á´
1
á¨á ááŤá ááĽá
1
á˛á´
1
á ááŤá á DHCP á°áá á á¨á ááłá¨ áá¨áĽ áááĽá ááá
á¨áĽ
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
255.255.224.0
ááľáá
4
á¨á ááŤá ááĽá
3
á˛á´
1
áDHCP á°áá á ááŁáŞ ááá˘áŤ á á á¨ááľá áľ á ááŤá
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
172.16.12.1
ááľáá
4
á¨á ááŤá ááĽá
6
á˛á´
1
DHCP áá˛á¤áá¤áľ á°áá á á¨áá
á¨áĽ á ááŤá
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
8.8.8.8
ááľáá
4
á¨á ááŤá ááĽá
51
á˛á´
1
á¨á°á°á á á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝ á¨á
áááľ ááá á á°á¨ááśá˝ ááľáĽáŁ á¨á፠á áá á¨DHCP á°áá á áĽáá°áá áá á¨á
á áá áľá˘
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
86400
á˛á´
4
á¨á ááŤá ááĽá
82
á˛á´
1
á ááŤá 82ᣠá DHCPDIScover á¨ááŁáá áá°ááá
á¨á ááŤá ááááľ
18
á˛á´
1
á¨á ááŤá áá
01:08:00:06:00
01:01:00:00:01
02:06:00:03:0f
26áĄ4 áᥠá˘.á
á˛á´
18
á¨áĽá
á áá¨á¨áť
255
á˛á´
1
255 á¨ááŹáąá áá¨á¨áť áŤááááłá
DHCPREQUEST
á°áá áá DHCPOFFERá á¨á°áá á á áá á á ááłá¨ áá¨áĄ áá áá á¨DHCP á ááááŽá˝ áá á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝á á¨áá áá ááŹáľ ááá°ááłáᣠááá áá DHCPOFFER á áŁá âáá°á°áâ áá ááľ á¨á°áá°á áĽáť ááᢠá¨"ááá°áľ" áááááá˝ áááŤáŠ áá˝áá áĽá á á°áá áá á¨DHCP á á°ááŁá á áá ááá°á¨áą áá˝ááᢠá¨áĽáŤáá á°ááŁá ᨠDHCP á áááá MAC á áľáŤáťá á áá áá ááááťáᢠáĽáá˛áá á¨á áááአá áá á áľáŤáť áá°á áĽá á¨á°áá á¨áá DHCPREQUEST ááŹáľ á ááááŞáŤ DHCPDISCOVER áłáŤááá á á°áá áá ááá áá˝ááá˘
DHCPREQUEST á¨ááŹáľ ááá á á áá á¨áĽ
á áĽá
á ááľáĽ á ááááĽ
á¨áĽá´áľ áľá (á¨á°ááá°)
áááłá:
ááá˘áŤ
áŁááľ
ááĽáŤáŞáŤ áĄáĄ
1
á¨ááľááť áĽáŤá
1
áááľ
1
á¨áááĽááľ á áááľá˘ 1 - á¨á°áá á áá° á áááá áĽáŤá ᣠ2 - á¨á áááá áá° á°áá á ááá˝
2
á¨áááľáá á áááľ
1
áááľ
1
á¨áááľáá á áľáŤáť á áááľ, á áá
ááŽáśáŽá 1 - MAC
3
á¨áááľáá á áľáŤáťáá˝ ááááľ
6
áááľ
1
á¨ááŁáŞáŤ MAC á áľáŤáť ááááľ
4
áĽá¨á°áá°á¨á°á¨
1
áááľ
1
á¨ááŤá¨ááá ááľááŽá˝ áĽááľ
5
á¨ááĽááľ ááłáááŤ
23áĄcfáĄdeáĄ1d
áááľ
4
áአá¨ááĽááľ áááŤá˘ á áĽáŤáá ááááŞáŤ áá á á°áá áá á¨á°áá á¨
7
ááá°á á ááá
0
áááľ
4
á áľáŤáť á¨ááááľ áá°áľ á¨á°ááá¨á áľ áá ááᎠá á°á¨ááśá˝ ááľáĽ áá
9
áŁáá˛áŤáá˝á á áľááł
8000
áááľ
2
á¨ááŽáśáŽá áááŞáŤáá˝á ááááá¨áľ áááአá¨áá˝á á¨á°áá°á áŁáá˛áŤáá˝á˘ á áá
á ááŁá "áľáááľ" á°ááá
áˇá
11
á¨á°áá á á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á°áá á á áá á áľáŤáť (áŤá)
15
á¨áĽááľá á°áá á á áá á áľáŤáť
172.16.134.61
ááľáá
4
á á áááአá¨áá¨á á¨á áá á áľáŤáť (áŤá)
19
á¨áááĽáá á áááá á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á áááá á áá á áľáŤáť (á¨ááłáá
á¨áá)
23
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť
172.16.114.41
ááľáá
4
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť (áááłá ᣠááĽáŞáŤ / ááĽááŤ)
27
á¨á°áá á MAC á áľáŤáť
14:d6:4d:a7:c9:55
áááľ
6
á¨ááŹáľ á᪠(á°áá á) MAC á áľáŤáť
31
á¨á°áá á áááľáá á áľáŤáť ááŁá
áááľ
10
á¨á°áŤá ááááŤ. áĽááá áá á ááŽáá˝ á°áááˇáá˘
41
á¨á áááá á áľá°ááá
áľá
ááľáá
64
á¨DHCP á áááá áľá áĽááá áá á áá°áááá
105
á¨ááľááť ááá áľá
ááľáá
128
á áááłá áľ áá á˛áľá á áᣠáŁá˘áŤáá˝ á áá ááá áľ á áááá áá á¨ááá áľá
235
á áľááľ áŠáŞáá˝
63: 82: 53: 63
áááľ
4
"á áľááľ" ááĽá, á áá
áá á¨áľ, á¨ááŽ. áá
ááŹáľ á¨DHCP ááŽáśáŽá áááá ááá
áľá˝ááá
á¨DHCP á ááŤáŽá˝á˘ á ááááá á á°á á°á¨á°á áááľ áá˝ááá˘
236
á¨á ááŤá ááĽá
53
á˛á´
3
á ááŤá 53ᣠá¨DHCP ááŹáľ á áááľ 3 - DHCPREQUESTá á¨áááá˝
á¨á ááŤá ááááľ
1
á˛á´
1
á¨á ááŤá áá
3
á˛á´
1
á¨á ááŤá ááĽá
61
á˛á´
1
á¨á°áá á ááłáááŤáĄ 01 (áEhernet) + á¨á°áá á MAC á áľáŤáť
á¨á ááŤá ááááľ
7
á˛á´
1
á¨á ááŤá áá
01:2c:ab:25:ff:72:a6
áááľ
7
á¨á ááŤá ááĽá
60
á˛á´
"á¨áťá ááá áááŤ". á áĽá áááłáŁ á¨DHCP á°áá á áĽáŞáľá áŞáááľ áŤá°áááᢠááááŁáľ ááá˝ ááłáŞáŤáá˝ á¨á°áᨠááá ááááłá. áááśááľ áááłá MSFT 5.0 á áŞáááľ áŤá°ááá
á¨á ááŤá ááááľ
11
á˛á´
á¨á ááŤá áá
udhcp 0.9.8
ááľáá
á¨á ááŤá ááĽá
55
1
á á°áá áá á¨á°á á¨á á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝á˘ á
ááĽá áááŤá áá˝ááá˘
01 - á¨á ááłá¨ áá¨áĽ áááĽá
03 - áá°ááááŤ
06 - Რá¤á á¤áľ
oc - á¨á áľá°ááá
áľá
0f - á¨á ááłá¨ áá¨áĽ áľá
1c - á¨áľáááľ áĽáŤá á áľáŤáť (áľáááľ)
42 - ᨠTFTP á áááá áľá
79 - ááá á¨ááá á¨áááááłááľ ááááľ
á¨á ááŤá ááááľ
8
1
á¨á ááŤá áá
01:03:06:0c:0f:1c:42:79
8
á¨á ááŤá ááĽá
82
á˛á´
1
á ááŤá 82ᣠá DHCPDIScover á¨ááŁáá áá°ááá
á¨á ááŤá ááááľ
18
á˛á´
1
á¨á ááŤá áá
01:08:00:06:00
01:01:00:00:01
02:06:00:03:0f
26áĄ4 áᥠá˘.á
á˛á´
18
á¨áĽá
á áá¨á¨áť
255
á˛á´
1
255 á¨ááŹáąá áá¨á¨áť áŤááááłá
DHCPACK
"á á áľááá ááᣠáá á¨áĽááľá á áá á áľáŤáť ááᣠáĽá áááá á áá°áĽá" á¨DHCP á áááá áĽáá° áá¨áááŤáŁ á DHCPACK á áá¸áľ á¨á áááአáá° á°áá áá á¨ááŤáááá ááŹáľá˘ áá áĽáá°ááá˝ ááŹáśá˝ áľáááľ áááŤáᢠááá áĽááłá á¨áá á áłá˝ áŁáá áŽáľ á Python ááľáĽ ááá°áá á¨á á¨DHCP á áááá ᣠáĽáá°á፠á¨áá ᣠááľááá á¨ááłáá á¨áá áááááá á¨áľáááľ áĽáŤá áá ááľ á¨á°áá°á á°áá á á áá á ááá áĽáŁáááᢠá¨áá á á áá á¨DHCP á áááá á¨DHCPACK ááŹá á°áá áá áá ááľá¨áąá ááá ááľ á áá°á ááᢠá°áá áá DHCPACK áŤáá°áá á á¨áĽááľ áá á áá á ááá DHCPREQUEST áá°ááá
á¨DHCPACK ááŹáľ ááá á á áá á¨áĽ
á áĽá
á ááľáĽ á ááááĽ
á¨áĽá´áľ áľá (á¨á°ááá°)
áááłá:
ááá˘áŤ
áŁááľ
ááĽáŤáŞáŤ áĄáĄ
1
á¨ááľááť áĽáŤá
2
áááľ
1
á¨áááĽááľ á áááľá˘ 1 - á¨á°áá á áá° á áááá áĽáŤá ᣠ2 - á¨á áááá áá° á°áá á ááá˝
2
á¨áááľáá á áááľ
1
áááľ
1
á¨áááľáá á áľáŤáť á áááľ, á áá
ááŽáśáŽá 1 - MAC
3
á¨áááľáá á áľáŤáťáá˝ ááááľ
6
áááľ
1
á¨ááŁáŞáŤ MAC á áľáŤáť ááááľ
4
áĽá¨á°áá°á¨á°á¨
1
áááľ
1
á¨ááŤá¨ááá ááľááŽá˝ áĽááľ
5
á¨ááĽááľ ááłáááŤ
23áĄcfáĄdeáĄ1d
áááľ
4
áአá¨ááĽááľ áááŤá˘ á áĽáŤáá ááááŞáŤ áá á á°áá áá á¨á°áá á¨
7
ááá°á á ááá
0
áááľ
4
á áľáŤáť á¨ááááľ áá°áľ á¨á°ááá¨á áľ áá ááᎠá á°á¨ááśá˝ ááľáĽ áá
9
áŁáá˛áŤáá˝á á áľááł
8000
áááľ
2
á¨ááŽáśáŽá áááŞáŤáá˝á ááááá¨áľ áááአá¨áá˝á á¨á°áá°á áŁáá˛áŤáá˝á˘ á áá
á ááŁá "áľáááľ" á°ááá
áˇá
11
á¨á°áá á á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á°áá á á áá á áľáŤáť (áŤá)
15
á¨áĽááľá á°áá á á áá á áľáŤáť
172.16.134.61
ááľáá
4
á á áááአá¨áá¨á á¨á áá á áľáŤáť (áŤá)
19
á¨áááĽáá á áááá á áá á áľáŤáť
0.0.0.0
ááľáá
4
á¨á áááá á áá á áľáŤáť (á¨ááłáá
á¨áá)
23
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť
172.16.114.41
ááľáá
4
á¨ááľá°ááá፠ááŞá á áá á áľáŤáť (áááłá ᣠááĽáŞáŤ / ááĽááŤ)
27
á¨á°áá á MAC á áľáŤáť
14:d6:4d:a7:c9:55
áááľ
6
á¨ááŹáľ á᪠(á°áá á) MAC á áľáŤáť
31
á¨á°áá á áááľáá á áľáŤáť ááŁá
áááľ
10
á¨á°áŤá ááááŤ. áĽááá áá á ááŽáá˝ á°áááˇáá˘
41
á¨á áááá á áľá°ááá
áľá
ááľáá
64
á¨DHCP á áááá áľá áĽááá áá á áá°áááá
105
á¨ááľááť ááá áľá
ááľáá
128
á áááłá áľ áá á˛áľá á áᣠáŁá˘áŤáá˝ á áá ááá áľ á áááá áá á¨ááá áľá
235
á áľááľ áŠáŞáá˝
63: 82: 53: 63
áááľ
4
"á áľááľ" ááĽá, á áá
áá á¨áľ, á¨ááŽ. áá
ááŹáľ á¨DHCP ááŽáśáŽá áááá ááá
áľá˝ááá
á¨DHCP á ááŤáŽá˝á˘ á ááááá á á°á á°á¨á°á áááľ áá˝ááá˘
236
á¨á ááŤá ááĽá
53
á˛á´
3
á ááŤá 53ᣠá¨DHCP ááŹáľ á áááľ 5 - DHCPACKá á¨áááá˝
á¨á ááŤá ááááľ
1
á˛á´
1
á¨á ááŤá áá
5
á˛á´
1
á¨á ááŤá ááĽá
1
á˛á´
1
á ááŤá á DHCP á°áá á á¨á ááłá¨ áá¨áĽ áááĽá ááá
á¨áĽ
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
255.255.224.0
ááľáá
4
á¨á ááŤá ááĽá
3
á˛á´
1
áDHCP á°áá á ááŁáŞ ááá˘áŤ á á á¨ááľá áľ á ááŤá
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
172.16.12.1
ááľáá
4
á¨á ááŤá ááĽá
6
á˛á´
1
DHCP áá˛á¤áá¤áľ á°áá á á¨áá
á¨áĽ á ááŤá
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
8.8.8.8
ááľáá
4
á¨á ááŤá ááĽá
51
á˛á´
1
á¨á°á°á á á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝ á¨á
áááľ ááá á á°á¨ááśá˝ ááľáĽáŁ á¨á፠á áá á¨DHCP á°áá á áĽáá°áá áá á¨á
á áá áľá˘
á¨á ááŤá ááááľ
4
á˛á´
1
á¨á ááŤá áá
86400
á˛á´
4
á¨á ááŤá ááĽá
82
á˛á´
1
á ááŤá 82ᣠá DHCPDIScover á¨ááŁáá áá°ááá
á¨á ááŤá ááááľ
18
á˛á´
1
á¨á ááŤá áá
01:08:00:06:00
01:01:00:00:01
02:06:00:03:0f
26áĄ4 áᥠá˘.á
á˛á´
18
á¨áĽá
á áá¨á¨áť
255
á˛á´
1
255 á¨ááŹáąá áá¨á¨áť áŤááááłá
á ááĽá
ááŤá á áĽáááą ááľáŤ á áľááá á¨áááľá ᨠpython áááá˝ ááŤáá áŤáŤáľáłáᢠMySQL á áľááľá áĽáá°á°áŤá áĽá áĽáá°á°ááᨠááááłáá˘
FreeBSD
pkg áŤá python3 python3 -m ensurepip pip3 mysql-connector áŤá
áĄáĄááą
sudo apt-get install python3 sudo apt-get install pip3 sudo pip3 mysql-connector ááŤá
ᨠMySQL áłáłá¤á áĽáááĽáŤááᣠá¨pydhcp.sql ááŁáŤáá áá° áĽáą áĽáá°á ááá áĽá á¨ááááŞáŤ áááá áĽááá áŤááá˘
áá á
ááá á¨á áááá á ááĽáŽá˝ á xml ááá ááľáĽ áá¸áᢠá¨ááŁááť ááááĄ-
1.0 0.0.0.0 255.255.255.255 192.168.0.71 8600 1 255.255.255.0 192.168.0.1 localhost áá°á áá°á pydhcp á ááŤá_8.8.8.8_áááľáĄsw_port82áĄ1áĄ20 á ááŤá_22_áááľáĄsw_port82áĄ2áĄ16 á ááŤá_18_áááľáĄsw_macáĄ82áĄ26 40 á¨áááá(áá)=á¨áá('{option_3_AgentRemoteId_hex}') áĽá á¨áááá(áá°áĽ)=á¨áá('{option_1_AgentCircuitId_port_hex}') áŤá á°á áááá˝ ip,mask,router,dns ááá¨áĄ á¨áááá(áá)=á¨áá('{sw_mac}') áĽá á¨áááá(áá°áĽ)=á¨áá('{sw_port82}') á¨á°á áááá˝ ipáŁmaskáŁrouteráŁdns áá¨áĽ á¨áááá(áá)=á¨áá('{ClientMacAddress}') á¨á°á áááá˝ ip,mask,router,dns áá¨áĽ áá° áłáŞá (ááłáá፠áŁá˛á˛ ᣠáá áŁá áá ᣠá áľá°áŤá¨áľ) áĽá´áśá˝ áŤáľáᥠ(áá áŁá áá() áŁ'{ClientMacAddress}'áŁ'{á¨á°á á¨áIpAddress}'áŁ'DHCPACK/INFORM)
á áá á á áá áááá áááŤááš áááĄ-
ᨠdhcpserver ááá á ááááŠá ááááá áá°á¨áłá á ááĽáŽá˝á ááááá-
- á áľá°ááá - á áááአá áááľ 67 áá á¨ááŤáłáá áá á¨á áá á áľáŤáť
- áľáááľ - á¨áľáá ip á¨DHCPOFFER áĽá DHCPACK áľáááą ááá˘
- DHCPServer - ᨠDHCP á áááá á áá áááľá ááá˘
- á¨á°á°á á á¨á áá á áľáŤáť á¨áá áá á¨áŞáŤá áá
- ThreadLimit - áá°áĽ 67 á¨ááᥠá¨UDP ááŹáśá˝á áááľáŹáľ áľááľ ááŽá˝ á á ááľ áá áĽá¨áŽáĄ áá ᢠá¨áá°á áááľ á ááŤá ááŽáááśá˝ áá áá¨áłá á°áĽá ááłá°áŁá đ
- defaultMask,defaultRouter,defaultDNS - á áá¨á ááą ááľáĽ á áá á¨á°áá á ááŁáŞááľ áá°áááá˘á á¨áááá á ááá áá á°á¨á᪠áááŞáŤáá˝ á áá°ááášá
mysql ááá:
á áľá°ááá
, á¨á°á áá áľá, á¨ááá áá, á¨áá á¨áľ áľá - ááá ááá ááŤáą ááááŤá. áááłá á¨ááἠááł ááá
á á°áá á
á¨áĽáŤá áááᥠOFFER/ACK á¨ááá á áĽáŤááá˝ áĽáá á°ááá¸áááĄ-
- offer_count - áĽáá° ip áŁmask ᣠrouter áŁdns áŤá áá¤áśá˝á á¨ááááą áĽáŤááá˝ áŤááŁá¸á á¨ááľááŽá˝ áĽááľ
- offer_n - á¨áá áá ááĽá¨áááᢠááááťá áŁáś á¨áá á¨áá¨á°ááá á¨á áá˝ áĽáŤá áŤáľáá˝áá
- history_sql - áááłá áá°áá áááľ á°áááᢠáá° âá¨áááľ áłáŞáâ á¨áá˝á áá áá
áĽáŤááá˝ á¨á ááŤáŽá˝ ááá ááá á¨DHCP ááŽáśáŽá ááľáĽ áŤá á ááŤáŽá˝á áááááá á°ááááŽá˝ ááŤáŤáľáą áá˝ááá˘
á ááŤáŽá˝ ááá. á¨á áá áľáŠá¨áľ á¨ááľáĽá áľ áŚáł áá ááᢠáĽáá á áá á áĽáŤá ááá ááľáĽ ááá áááŁá¸á á¨ááá˝áá¸áá á°ááááŽá˝ ááá á áĽáá˝áááá˘
áááłá:
option_82_hex:sw_port1:20:22
áá á¨áľááá ááľáá á DHCP áĽáŤá á ááŤá 82 á¨ááŁáá ááľáá á áá á áááľ á áá¸áľ á¨20 áĽáľá¨ 22 áŁááľ á áŤáłá˝ áŤááá ááá ááľáś á á á˛áą á°áááá sw_port1 (áĽáŤáá á¨ááŁá áľ áá°áĽ ááá) áŤáľááá ááá˘
option_82_hex:sw_mac:26:40
, ᨠsw_mac á°ááááá ááááš, áááąá á¨ááá 26:40 ááá°áą
á ááááŠá á -d ááĽáŞáŤ / ááĽá፠á áááá á áĽáŤááá˝ ááľáĽ áá áááŁá¸á á¨áá˝ááľá áááá á ááŤáŽá˝ áá¨áľ áá˝ááᢠáĽáá°áá áŤá áááἠáĽááŤáááĄ-
--á¨DHCPINFORM ááŹáľ áá°áĽ 67 á°ááˇáᣠá¨0025224ad764ᣠb'x91xa5xe0xa3xa5xa9-x8fx8a'ᣠ('172.30.114.25'ᣠ68) {'ClientMacAddress'áŁ'0025224cB'd764 00%"Jxd7d' , 'HType': 'á˘á°áááľ', 'á¨á áľá°ááá áľá': b'x91xa5xe0xa3xa5xa9-x8fx8a', 'ReqListDNS': áĽáááľ, 'ReqListDomainName': áĽáááľ, 'ReqListPerfowmRouterDiscover': áĽáááľ, 'ReqListRouter': True, 'ReqListRout 'ReqListSubnetM áá áá'ᥠáĽáááľáĄ 'ReqListVendorSpecInfo'ᥠ43, 'RequestedIpAddress': '0.0.0.0', 'Vendor': b'MSFT 5.0', 'chaddr': '0025224ad764', 'cidadr'.172.30.128.13':'00:00 , 'áŁáá˛áŤáá˝': b'x172.30.114.25x308', 'giadr': '6', 'gpoz': 1, 'hlen': 82, 'áááľ': 12, 'htype': 'MAC', 'magic_cookie': b'cx12Sc'ᣠ'op': 'DHCPINFORM'ᣠ'Option53': 53, 'Option55': 55, 'Option60': 60, 'Option61': 61, 'Option82': 82, 'Option82': 12,' á ááŤá_01_áŁááľ'ᥠb'x06x00x04x00x01x00x06x02x08x00x06x00'b'x1x9x2eXx82exb12010600040001000602080006001xad'ᣠ'á ááŤá_589_áááľ'ᥠ'2e 82_len'ᥠ18 82ᣠ'option_12_str'ᥠ"b'x01x06x00x04x00x01x00x06x02x08x00x06x00x1x9eXx2exb768xad"ᣠ'áá¤áľ'ᥠáá¸áľáŁ 'á°á¨ááľ'ᥠ0.0.0.0ᣠ'siadr': '001', 'sw_mac': '589e2eb1ad', 'sw_port06': '89', 'xidbyte': b'
á áá áá á¨áľ áááááá á°áááá á {} ááľáĽ áá á áá áĽáá˝ááá áĽá á SQL áá áá ááľáĽ áĽá á áá ááááá˘
á°áá áá á¨á áá á áľáŤáťáá áĽáá°á°áá á ááłáŞá áĽááááá ááĄ-
á¨á áááá á áá
./pydhcpdb.py -d -c config.xml
- d á¨áŽááśá áá
ááľ áááł á áá
- á <ááá áľá> á¨áá
á ááá
áĽáá
áĽá á áá á Python ááľáĽ á ááááŠá áľááá°áá á á°á¨á᪠ááááŽá˝á˘ á áá áá. Python á á á¨áŤ áá á°ááŻáᢠáĽá á ááłáá˝ á¨á°á°áŠáľ âááᣠá áá ááááľ áĽáá˛á°áŤ á áľáááááâ á ááá ááᤠááᢠá¨ááś á áá°ááťá¸áᣠáĽá á áá á á˝ ááľáĽ á¨á°á°áá á ááááľ á áááá áááľ ááľáĽ áŁáá áľáá˝ áááľ ááᢠá "áŽáľ" ááľáĽ á¨á áááá á á°ááŁá á á áŁá á áľá°áłá˝ á áá ááłáŽá˝ áá áĽááŤáá.
á¨á¤ááľá¤áá¤á áá á ááá á°ááłá
áá°á á á¨áááá ááá xml.dom áĽá á áá ááááᢠááá áááľáá, ááá áá á áľáá áŤá áá áľ áá áá ááá á áá áá á ááľááአáá ááá˝ á¨áá á°ááśá˝ áĽá ááłááá˝ áĽáĽá¨áľ áłááˇá.
áá = minidom.parse (gconfig ["config_file") mconfig = áá.getElementsByTagName ("mysql") á elem mconfig: gconfig ["mysql_host"] =elem.getElementsByTagName ("á áľá°ááá ") [0].firstChild.data gconfig ["mysql_username"]=elem.getElementsByTagName("á¨á°á áá áľá")[0]á˘á¨ááááŞáŤ áá .áłáł gconfig["mysql_password"]=elem.getElementsByTagName("á¨ááá áá")[0]á˘á¨ááááŞáŤ áá .áłáł gconfig["mysql_basename"] =elem.getElementsByTagName ("basename") [0] .firstChild.data dconfig=tree.getElementsByTagName ("dhcpserver") á elem á dconfig: gconfig ["áľáááľ"]=elem.getElementsByTagName ("áľáááľ")[0]. firstChild.data gconfig ["dhcp_host"]=elem.getElementsByTagName("á áľá°ááá ")[0]á˘firstChild.data gconfig["dhcp_LeaseTime"]=elem.getElementsByTagName("á¨áá áá")[0]á˘á¨ááááŞáŤ áá .áłáł gconfig[" dhcp_ThreadLimit"]=int(elem.getElementsByTagName("ThreadLimit")[0] FirstChild.data) gconfig ["dhcp_Server"]=elem.getElementsByTagName("DHCPServer")[0]á˘á¨ááááŞáŤ áá .áłáł gconfig["dhcp" =elem.getElementsByTagName("defaultMask")[0]á˘firstChild.data gconfig["dhcp_defaultRouter"]=elem.getElementsByTagName("defaultRouter")[0]á˘firstChild.data gconfig["dhcp_defaultDNS"]=elem. defaultDNS") [0] FirstChild.data qconfig=tree.getElementsByTagName ("áá áá ") á elem qconfig: gconfig ["offer_count"]=elem.getElementsByTagName ("offer_count") [0] .á¨ááááŞáŤ á¨áá .áłáł áááĽá ááĽá ááá(int(gconfig ["offer_count"))))ᥠgconfig["offer_"+str(ááĽá+1)]=elem.getElementsByTagName("offer_"+str(ááĽá+1))[0]á˘firstChild.data gconfig ["history_sql"]=elem.getElementsByTagName("history_sql")[0].á¨ááááŞáŤ áá .á¨ááἠá ááŤáŽá˝=tree.getElementsByTagName("á ááŤáŽá˝") áá ááŤáŽá˝áĄ node=elem.getElementsByTagName("á ááŤá") á ááľááá ááááľ áá á ááŤáŽá˝á˘ á ááŤáŽá˝Mod.append(options.firstChild.data)
áŁá áĽá ááá áĽ
á ááŤáľá°áá áááłáŁ á áááá ááľáĽ áŁááĽá-áá ááŁáĽ á áŁá ááá˝ áĽá ááá á áá áááł áá°áá áŤáá˘
def PacketWork(áłáłáŁ addr): ... # á¨ááŞáá ááŹáľ áá°áá°á áĽá ááĽáą ááá˝ ááľá áľ ... áĽáááľ áłá: áłáł, addr = udp_socket.recvfrom(1024) # ᨠUDP ááŹáľ áá á áá á á áá = áá. target=PacketWork , args=(data,addr,))) ááá() # áĽáá°áᣠ- á¨áá áá°á á¨á°ááá¸áá á¨ááŹáľ ááá á°ááŁá á¨á áľá°ááᣠá¨áááŞáŤ áá áĽááľáááŤáá threading.active_count() >gconfig["dhcp_ThreadLimit"]ᥠááᢠ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: port áááá áááľ ááᢠáĽáá˛áá AF_UNIX ááá áá˝áá - á áľáŤáťá á ááá áľá á¨á°á°á á áľá˘
- SOCK_DGRAM - áááľ âáĽáŹ ááŹáľâ á ááá áá áááľ ááᣠááá áá á áľááľá á áá¨ááá áŤááᣠáĽá á á¨áá á¨á°á¨á¨á¨á ááŹáľ áŤááᢠáĽáááŤá˘ ᨠUDP ááŹáľ áá á á፠"á áŤáá" á áŤá á¨áá ᨠUDP ááŹáľ áĽáť áĽááá áááᢠá¨SOCK_RAW áŁáá˛áŤ á¨á°á ááᣠáá á "áá á ááŤ" áá°áá°áá áŤáľáááááłáá˘
ááŹáľ ááá áĽáá° áľáááľ ááá áá˝áááĄ-
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) #áśáŹáąá áá° áľáááą áááł rz=udp_socket.sendto(packetack, (gconfig["áĽáŽáľáŤáľáľ"],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 ááŹáľá á áá°áá°á áá
ááááá á áŁá á¨ááá°á áŚáł áá ááᢠá¨áłáĽá ááľáĽ á áŁáá´áŽáľ á áŁá á°áááá áĽáá˛áá áŤáľá˝áááłáᢠá áŁá á ááá áá° á áľááŽá˝ áĽá´áśá˝áŁ ááĽá¨ááááá˝ áĽá áááľ áĽáá˛á°á¨áá ááááľ - áááľáᢠá¨áĽá áá á áááá á áľááá ááá¨áłáľ á¨ááŤáľáááá áá ááᢠáľááá ᣠáááłáᣠá HEX áĽá á á áŁááľ ááľáĽ á¨á°ááŤáŠ áŁááľ ááááľ áá˝ááá˘
res["xidhex"]=áá¨á[4:8].hex () res["xidbyte"]=áá¨á[4:8]
, áŁááľ áá° ááá á áŤá¸á:
res["áŁáá˛áŤáá˝"]=áĽá á('BB'ᣠdata[10]ᣠdata[11])
á ááá á¨ááá á áŤáááĄ
res["ciadr"]=socket.inet_ntoa(áĽá á('BBBB'áŁdata[12]áŁdata[13]áŁdata[14]áŁdata[15])));
áĽáá˛áá á á°ááŤáá:
res=res+socket.inet_pton(socket.AF_INETᣠgconfig["dhcp_server")
áá áá ፠áĽáť áá đ
ááá: hab.com