IPean seach-rathadair agus puirt heics a thoirt a-mach à JSON freumhaichte
Dì-chòdaich uallaichean JSON aithnichte bho ghairmean sgriobt liostaichean seach-rathadair agus mìnich port heics a-mhàin nuair a dh'ainmicheas cruth na stòrais sin e.
Chan eil clàr HTML falamh an-còmhnaidh a' ciallachadh nach eil clàran seach-rathadair san fhreagairt. Bidh cuid de liostaichean a' cur nithean JSON am broinn ghairmean JavaScript agus a' lìonadh nan sreathan nas fhaide air adhart.
Airson stòr a fhuaireadh mu thràth a chleachdas an t-ionghabhal sònraichte gp.insertPrx agus nì JSON na dhèidh:
import ipaddress
import json
import re
decoder = json.JSONDecoder()
endpoints = set()
for marker in re.finditer(r"gp[.]insertPrx\(\s*", html):
try:
row, end = decoder.raw_decode(html, marker.end())
if not isinstance(row, dict):
continue
address = ipaddress.ip_address(row["PROXY_IP"])
port = int(row["PROXY_PORT"], 16)
except (ValueError, KeyError, TypeError):
continue
if 1 <= port <= 65535 and html[end:].lstrip().startswith(");"):
endpoints.add((str(address), port))
Is e html teacsa an stòrais, chan e nì brabhsair. Lorgas an abairt riaghailteach ionghabhal aithnichte; mìnichidh JSONDecoder far a bheil an luach JSON a' crìochnachadh. Mar sin thèid seachad air oidhirp JSON neadach a pharsadh le abairt riaghailteach a-mhàin.
Tha raon a' phuirt san eisimpleir gu soilleir heicsidheachúlach: tha C38 a' ciallachadh 3128 deicheach. Na cuir bonn 16 an sàs air raon deicheach solaraiche eile dìreach air sgàth 's gur port a chanar ris an dà rud.
Is parsair airson a' chruth a chaidh ainmeachadh a tha seo, chan e eadar-theangair JavaScript. Feumaidh litireil nithean le comharran-briathair singilte, luachan àireamhaichte agus abairtean JavaScript eile eadar-aghaidh dàta eile a tha air a chlàradh. Na ruith còd duilleige neo-riaghailteach gus liosta chrìochan fhaighinn.
Dearbha cùmhnant an stòrais agus cùm raointean protocol air leth. Ma tha sreathan HTML lìonta san stòr na àite, cleachd toirt a-mach chrìochan a rèir sreath seach am parsair ionghabhail JavaScript seo. Chan eil toirt a-mach seòlaidh agus puirt a' dearbhadh gu bheil an crìoch a' tabhann seirbheis seach-rathadair a ghabhas cleachdadh an-dràsta.