IP និង port របស់ proxy៖ តើកម្មវិធីអ្នកត្រូវការទម្រង់ណា?
បម្លែងធាតុក្នុងបញ្ជី proxy ទៅជា URL HTTP ឬ SOCKS បំពេញវាល host និង port ដាច់ដោយឡែក និងសរសេរអាសយដ្ឋាន IPv6 ឱ្យត្រឹមត្រូវ។
កម្មវិធីខ្លះត្រូវការ IP:port។ ខ្លះទៀតត្រូវការ URL ដែលផ្តើមដោយ http:// ឬ socks5://។ ការកំណត់កម្មវិធីរុករកជាញឹកញាប់ដាក់អាសយដ្ឋាន និង port ក្នុងវាលខុសគ្នា។ ដូច្នេះ endpoint ដូចគ្នាអាចមានទម្រង់ជាច្រើន ដោយអាសយដ្ឋានមិនផ្លាស់ប្តូរ។
ធាតុ IPv4
ឧបមាថាបញ្ជី HTTP proxy ផ្តល់ HTTP proxy ឧទាហរណ៍ 203.0.113.10:8080។
| កម្មវិធីស្នើសុំ | បញ្ចូល |
|---|---|
| Host ឬ IP | 203.0.113.10 |
| Port | 8080 |
| URL របស់ HTTP proxy | http://203.0.113.10:8080 |
កុំដាក់ port ពីរដង។ ប្រសិនបើកម្មវិធីមានវាល port រួចហើយ ការដាក់ 203.0.113.10:8080 ក្នុងវាល host អាចធ្វើឱ្យវាព្យាយាមដោះស្រាយខ្សែអក្សរទាំងមូលជាឈ្មោះ host។ ដូចគ្នានេះ កុំបន្ថែម scheme ទៅវាលដែលបញ្ជាក់ថាត្រូវការតែអាសយដ្ឋាន IP។
Scheme ត្រូវតែត្រូវនឹងសេវា។ ជ្រើសរើស HTTP ឬ SOCKS5 តាមការគាំទ្ររបស់ client មុនបម្លែងអាសយដ្ឋាន។ ការសរសេរ socks5:// នៅមុខ HTTP endpoint ផ្លាស់ប្តូរអ្វីដែល client ផ្ញើ ប៉ុន្តែមិនបើក SOCKS5 លើ server នោះទេ។
IPv6 ត្រូវការវង់ក្រចកការ៉េក្នុង URL
អាសយដ្ឋាន IPv6 មានសញ្ញាចុចពីរស្រាប់ ដូច្នេះ URL ដាក់អាសយដ្ឋានក្នុងវង់ក្រចកការ៉េ មុនបន្ថែម port៖
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
បើគ្មានវង់ក្រចក ព្រំដែនរវាងអាសយដ្ឋាន និង port មិនច្បាស់ទេ។ កម្មវិធីដែលមានវាលដាច់ដោយឡែកជាទូទៅចង់បាន 2001:db8::10 ជា host និង 8080 ជា port។ សូមធ្វើតាមទម្រង់បញ្ចូលរបស់កម្មវិធីនោះ។ អាសយដ្ឋានទាំងពីរនៅទីនេះជាឧទាហរណ៍ឯកសារ មិនមែន proxy កំពុងដំណើរការទេ។
វិភាគ URL ជំនួសឱ្យការបំបែកតាមរាល់សញ្ញាចុចពីរ
ស្គ្រីប Python តូចមួយអាចប្រើ URL parser ស្តង់ដារ ដើម្បីដោះស្រាយ URL IPv4 និង IPv6 ដែលមានវង់ក្រចក៖
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
លក្ខណៈ hostname ផ្តល់អាសយដ្ឋានដោយគ្មានវង់ក្រចក។ ការបំបែកខ្សែអក្សរដើមតាមរាល់សញ្ញាចុចពីរ នឹងធ្វើឱ្យឧទាហរណ៍នេះខូច។ ក្នុងកម្មវិធីនាំចូលពិតប្រាកដ ត្រូវបដិសេធ host ដែលបាត់ scheme ដែលមិនគាំទ្រ និង port ក្រៅ 1–65535 ផងដែរ។ ការវិភាគ URL ផ្តល់ធាតុផ្សំរបស់វា ប៉ុន្តែមិនបញ្ជាក់ថាសេវាមានទេ។
ពេលបញ្ជីមានឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់
ទម្រង់ URL ទូទៅគឺ http://username:password@host:port។ តួអក្សរដូចជា @, # និង / ក្នុងព័ត៌មានចូលប្រើ ត្រូវការ URL encoding ត្រឹមត្រូវ។ ប្រសិនបើ client ផ្តល់វាលព័ត៌មានចូលប្រើដាច់ដោយឡែក ការប្រើវាលទាំងនោះជាទូទៅងាយជាងការបង្កើត URL ដោយដៃ។
ពិនិត្យទម្រង់ដើមរបស់អ្នកផ្តល់សេវា មុនបម្លែងខ្សែអក្សរព័ត៌មានចូលប្រើដែលបំបែកដោយសញ្ញាចុចពីរ។ វាលបួនដែលបំបែកបែបនេះមិនមានអត្ថន័យសកលទេ ហើយពាក្យសម្ងាត់ខ្លួនឯងក៏អាចមានសញ្ញាចុចពីរ។ Parser សម្រាប់បន្ទាត់ IP:port ធម្មតា មិនគួរទាយទម្រង់ផ្សេងដោយស្ងៀមស្ងាត់ទេ។