Requests ಗಾಗಿ IPv4 ip:port:user:password ನಮೂದುಗಳನ್ನು ಪರಿವರ್ತಿಸಿ
ಸೀಮಿತ ವಿಭಜನೆಯಿಂದ ip:port:user:password ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ ಮತ್ತು ಪ್ರಾಕ್ಸಿ ನಕ್ಷೆ ನಿರ್ಮಿಸುವ ಮೊದಲು ರುಜುವಾತುಗಳ ಭಾಗಗಳನ್ನು ಎನ್ಕೋಡ್ ಮಾಡಿ.
HTTP ಪ್ರಾಕ್ಸಿ ಪೂರೈಕೆದಾರರ IPv4 ಸ್ವರೂಪ 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 ಗಳನ್ನು ಸಾಮಾನ್ಯ ಲಾಗ್ಗಳಿಂದ ದೂರವಿಡಿ.