ສຳລັບຮູບແບບ IPv4 ຂອງຜູ້ໃຫ້ບໍລິການພຣັອກຊີ HTTP ip:port:user:password, ໃຫ້ແປງຄ່າຂອງແຕ່ລະຟິລດ໌ກ່ອນທີ່ຈະສົ່ງຄ່າໃຫ້ Requests:

from ipaddress import IPv4Address
from urllib.parse import quote

def proxy_map(line):
    host, port, user, password = line.rstrip('\r\n').split(':', 3)
    host = str(IPv4Address(host))
    port = int(port)
    if not 1 <= port <= 65535:
        raise ValueError('Proxy port is out of range')
    credentials = quote(user, safe='') + ':' + quote(password, safe='')
    url = f'http://{credentials}@{host}:{port}'
    return {'http': url, 'https': url}

ການແຍກແບບມີຂອບເຂດຈະຮັກສາເຄື່ອງໝາຍຈຸດສອງທີ່ເພີ່ມເຕີມພາຍໃນລະຫັດຜ່ານ. ການລຶບພຽງແຕ່ຕົວອັກສອນຂຶ້ນແຖວໃໝ່ຍັງຊ່ວຍຫຼີກລ່ຽງການຕັດຍະຫວ່າງທີ່ອາດເປັນສ່ວນໜຶ່ງຂອງຂໍ້ມູນປະຈຳຕົວອອກຢ່າງງຽບໆ.

ເຂົ້າລະຫັດຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານເປັນອົງປະກອບ URL ແຍກກັນ. ເຄື່ອງໝາຍ @ ໃນລະຫັດຜ່ານແບບດິບຕ້ອງບໍ່ຖືກສັບສົນກັບຕົວແຍກກ່ອນໂຮສຂອງພຣັອກຊີ. ຟັງຊັນນີ້ຄາດຫວັງຂໍ້ມູນປະຈຳຕົວແບບດິບ; ການສົ່ງຂໍ້ຄວາມທີ່ເຂົ້າລະຫັດແລ້ວອາດເຮັດໃຫ້ເຄື່ອງໝາຍເປີເຊັນຖືກເຂົ້າລະຫັດຊ້ຳ.

ແຜນທີ່ທີ່ສົ່ງຄືນຈະເລືອກພຣັອກຊີນີ້ສຳລັບປາຍທາງ HTTP ແລະ HTTPS. ຄີຢ່າງ http://192.0.2.10 ມີຄວາມໝາຍອີກຢ່າງໜຶ່ງໃນ Requests: ມັນເລືອກເສັ້ນທາງສຳລັບໂຮສປາຍທາງນັ້ນ. ມັນບໍ່ແມ່ນດັດຊະນີສຳລັບກຸ່ມເຊີບເວີພຣັອກຊີ.

ຕົວແຍກວິເຄາະຮັບຮູບແບບ IPv4 ທີ່ກ່າວມາຢ່າງເຈດຕະນາ. ມັນບໍ່ຮອງຮັບຊື່ຜູ້ໃຊ້ທີ່ມີເຄື່ອງໝາຍຈຸດສອງ ຫຼື ທີ່ຢູ່ IPv6 ທີ່ບໍ່ມີວົງເລັບ; ສິ່ງເຫຼົ່ານັ້ນຕ້ອງການຮູບແບບຂໍ້ມູນນຳເຂົ້າທີ່ບໍ່ກຳກວມ. ຈົ່ງຮັກສາ URL ທີ່ມີຂໍ້ມູນປະຈຳຕົວອອກຈາກບັນທຶກປະຈຳວັນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ