IP ແລະ port ຂອງ proxy: ແອັບຕ້ອງການຮູບແບບໃດ?
ປ່ຽນລາຍການ proxy ເປັນ HTTP ຫຼື SOCKS URL, ຕື່ມຊ່ອງ host ແລະ port ແຍກກັນ ແລະຂຽນທີ່ຢູ່ IPv6 ໃຫ້ຖືກ.
ບາງແອັບຕ້ອງການ IP:port. ແອັບອື່ນຕ້ອງການ URL ທີ່ເລີ່ມດ້ວຍ http:// ຫຼື socks5://. ການຕັ້ງຄ່າ browser ມັກແຍກທີ່ຢູ່ແລະ port ເປັນຄົນລະຊ່ອງ. ດັ່ງນັ້ນ endpoint ດຽວກັນອາດມີຫຼາຍຮູບແບບ ໂດຍທີ່ຢູ່ບໍ່ປ່ຽນ.
ລາຍການ IPv4
ສົມມຸດວ່າລາຍຊື່ HTTP proxy ໃຫ້ຕົວຢ່າງ HTTP proxy 203.0.113.10:8080.
| ສິ່ງທີ່ແອັບຂໍ | ປ້ອນ |
|---|---|
| Host ຫຼື IP | 203.0.113.10 |
| Port | 8080 |
| HTTP proxy URL | http://203.0.113.10:8080 |
ຢ່າໃສ່ port ສອງຄັ້ງ. ຖ້າແອັບມີຊ່ອງ port ແລ້ວ ການໃສ່ 203.0.113.10:8080 ໃນຊ່ອງ host ອາດເຮັດໃຫ້ມັນພະຍາຍາມ resolve ທັງ string ເປັນຊື່ 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 ມາດຕະຖານຈັດການ IPv4 ແລະ IPv6 URL ທີ່ມີວົງເລັບໄດ້:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
ຄຸນສົມບັດ hostname ສົ່ງຄືນທີ່ຢູ່ໂດຍບໍ່ມີວົງເລັບ. ການແຍກ string ຕົ້ນສະບັບທຸກສອງຈ້ຳຈະເຮັດໃຫ້ຕົວຢ່າງນີ້ເສຍ. ໃນ importer ຈິງ ຄວນປະຕິເສດ host ທີ່ຂາດ, scheme ທີ່ບໍ່ຮອງຮັບ ແລະ port ນອກ 1–65535 ນຳ. ການວິເຄາະ URL ໃຫ້ສ່ວນປະກອບຂອງມັນ, ບໍ່ໄດ້ພິສູດວ່າບໍລິການມີຢູ່.
ເມື່ອລາຍຊື່ມີຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານ
ໂຄງສ້າງ URL ທີ່ພົບເລື້ອຍແມ່ນ http://username:password@host:port. ຕົວອັກສອນເຊັ່ນ @, # ແລະ / ໃນຂໍ້ມູນເຂົ້າໃຊ້ຕ້ອງມີ URL encoding ທີ່ຖືກ. ຖ້າ client ມີຊ່ອງຂໍ້ມູນເຂົ້າໃຊ້ແຍກ ການໃຊ້ຊ່ອງນັ້ນມັກງ່າຍກວ່າສ້າງ URL ດ້ວຍມື.
ກວດຮູບແບບຕົ້ນສະບັບຂອງຜູ້ໃຫ້ບໍລິການ ກ່ອນປ່ຽນ string ຂໍ້ມູນເຂົ້າໃຊ້ທີ່ແຍກດ້ວຍສອງຈ້ຳ. ສີ່ຊ່ອງທີ່ແຍກແບບນີ້ບໍ່ມີຄວາມໝາຍສາກົນ ແລະລະຫັດຜ່ານເອງອາດມີສອງຈ້ຳ. Parser ສຳລັບແຖວ IP:port ງ່າຍໆ ບໍ່ຄວນເດົາຮູບແບບອື່ນຢ່າງງຽບໆ.