এম্বেড কৰা JSON ৰ পৰা প্ৰক্সি IP আৰু হেক্স প'ৰ্ট উলিয়াওক
প্ৰক্সি তালিকাৰ স্ক্ৰিপ্ট কলৰ পৰা জনা JSON পেল'ড ডিক'ড কৰক আৰু উৎসৰ বিন্যাসে ঘোষণা কৰিলে হে হেক্স প'ৰ্ট ব্যাখ্যা কৰক।
খালী HTML টেবুল মানেই নহয় যে প্ৰতিক্ৰিয়াত কোনো প্ৰক্সি ৰেকৰ্ড নাই। কিছুমান তালিকাই JavaScript কলৰ ভিতৰত JSON বস্তু ৰাখে আৰু পিছত শাৰীবোৰ পূৰ্ণ কৰে।
আগতে পোৱা উৎসত নিৰ্দিষ্ট আৱৰণ gp.insertPrx আৰু তাৰ পিছত JSON বস্তু ব্যৱহাৰ কৰা হ'লে:
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))
html হ'ল উৎসৰ পাঠ, ব্ৰাউজাৰ বস্তু নহয়। ৰেগুলাৰ এক্সপ্ৰেশ্যনে জনা আৱৰণ বিচাৰি উলিয়ায়; JSONDecoder এ JSON মান ক'ত শেষ হয় নিৰ্ধাৰণ কৰে। ইয়াৰ দ্বাৰা কেৱল ৰেগুলাৰ এক্সপ্ৰেশ্যৰে ভিতৰত থকা JSON বিশ্লেষণ কৰাৰ পৰা বিৰত থাকিব পাৰি।
উদাহৰণৰ প'ৰ্ট ক্ষেত্ৰ স্পষ্টভাৱে হেক্সাডেচিমেল: C38 ৰ অৰ্থ দশমিক 3128। দুয়োকে প'ৰ্ট বুলি কোৱা বাবেই অন্য প্ৰদানকৰ্তাৰ দশমিক ক্ষেত্ৰত ভিত্তি 16 প্ৰয়োগ নকৰিব।
এইটো উল্লেখিত বিন্যাসৰ বিশ্লেষক, JavaScript ইণ্টাৰপ্ৰিটাৰ নহয়। এটা উদ্ধৃতিৰ বস্তু লিটাৰেল, গণনা কৰা মান আৰু অন্য JavaScript প্ৰকাশে আন এখন নথিভুক্ত ডেটা ইন্টাৰফেচ বিচাৰে। এণ্ডপইণ্ট তালিকা পাবলৈ যিকোনো পৃষ্ঠা ক'ড নচলাওক।
উৎসৰ চুক্তি বৈধ কৰক আৰু প্ৰ'ট'কল ক্ষেত্ৰসমূহ পৃথকে ৰাখক। যদি উৎসত HTML শাৰী পূৰ্ণ হৈ আছে, তেন্তে এই JavaScript আৱৰণ বিশ্লেষকৰ সলনি শাৰী-পৰিসৰত এণ্ডপইণ্ট উলিওৱা ব্যৱহাৰ কৰক। ঠিকনা আৰু প'ৰ্ট উলিয়ালে এণ্ডপইণ্টে এতিয়া ব্যৱহাৰযোগ্য প্ৰক্সি সেৱা আগবঢ়ায় বুলি প্ৰমাণ নহয়।