ຕົວເຊື່ອມຕໍ່ທີ່ຮູ້ຈັກ SOCKS ສຳລັບ Python TCP sockets
ເລືອກຕົວເຊື່ອມຕໍ່ socket ທີ່ຮູ້ຈັກ proxy ແລະ ຮັກສາຂອບເຂດຂອງມັນແຍກຈາກການຈັດຕັ້ງ socket ທົ່ວຂະບວນການຂອງ Python.
socket Python ທຳມະດາບໍ່ໄດ້ເຈລະຈາ proxy ພຽງເພາະວ່າ http_proxy ມີຢູ່. ສຳລັບແອັບທີ່ເວົ້າໂປຣໂຕຄອນ TCP ຂອງຕົນເອງ, ໃຫ້ໃຊ້ຕົວເຊື່ອມຕໍ່ທີ່ເຂົ້າໃຈບໍລິການຢູ່ປາຍທາງ proxy.
ເມື່ອ PySocks ມີຢູ່ແລ້ວ, ສ້າງການເຊື່ອມຕໍ່ຢ່າງຊັດເຈນ:
import socks
with socks.socksocket() as connection:
connection.set_proxy(socks.SOCKS5, '203.0.113.10', 1080)
connection.settimeout(10)
connection.connect(('example.com', 12345))
# Exchange the destination protocol here.
ປ່ຽນທີ່ຢູ່ໃນເອກະສານ ແລະ ພອດປາຍທາງ. ສຳລັບປາຍທາງສາທາລະນະທີ່ອະນຸຍາດ, ເລືອກຜູ້ສະໝັກຈາກ ລາຍການ proxy SOCKS5 ຫຼັງຈາກກວດວ່າມັນອະນຸຍາດພອດເປົ້າໝາຍຂອງແອັບ. ກວດແພັກເກດທີ່ຕິດຕັ້ງ, ວິທີການທີ່ຮອງຮັບ ແລະ ຄວາມຕ້ອງການຂອງປາຍທາງທຽບກັບ ອິນເຕີເຟສ PySocks.
ສ່ວນທີ່ເຫຼືອຂອງແອັບແລກປ່ຽນໂປຣໂຕຄອນຂອງມັນຜ່ານການເຊື່ອມຕໍ່ທີ່ສ້າງແລ້ວນີ້. ຖ້າໂປຣໂຕຄອນນັ້ນໃຊ້ TLS, ເລີ່ມມັນຫຼັງການເຈລະຈາ proxy ແລະ ກວດຊື່ໂຮສປາຍທາງທີ່ແທ້ຈິງ. ການພິສູດຕົວຕົນ proxy ສ້າງເສັ້ນທາງ; ມັນບໍ່ໄດ້ໃຫ້ການເຂົ້າສູ່ປາຍທາງ ຫຼື ການເຂົ້າລະຫັດ.
SOCKS listener ຕ້ອງການການເຈລະຈາ SOCKS. ບໍລິການ HTTP ຕ້ອງການຕົວເຊື່ອມຕໍ່ທີ່ສາມາດ CONNECT ສຳລັບປາຍທາງ TCP ຕາມອຳເພີໃຈ ແລະ ອາດປະຕິເສດພອດຂອງມັນ. ເລືອກຕົວເຊື່ອມຕໍ່ຈາກບໍລິການທີ່ສະເໜີຈິງ ແທນການປ່ຽນທີ່ຢູ່ໂດຍປະຖິ້ມການຈັບມືທີ່ຜິດ.
ຮັກສາການແທນທີ່ໃຫ້ເປັນທ້ອງຖິ່ນ. ການກຳນົດ class ໃຫ້ socket.socket ອາດສົ່ງຜົນຕໍ່ການ import ແລະ ຫ້ອງສະໝຸດທີ່ບໍ່ກ່ຽວຂ້ອງ. ຖ້າຫ້ອງສະໝຸດອື່ນເປັນເຈົ້າຂອງການສ້າງ socket, ໃຊ້ factory ການເຊື່ອມຕໍ່ ຫຼື ຕົວເລືອກ proxy ທີ່ມີເອກະສານຂອງມັນ; ວັດຈະນານຸກົມທີ່ມັນບໍ່ເຄີຍອ່ານບໍ່ສາມາດປ່ຽນການເຊື່ອມຕໍ່ນັ້ນໄດ້.