ಸಾಮಾನ್ಯ Python ಸಾಕೆಟ್ http_proxy ಇರುವ ಕಾರಣ ಪ್ರಾಕ್ಸಿಯೊಂದಿಗೆ ಮಾತುಕತೆ ನಡೆಸುವುದಿಲ್ಲ. ತನ್ನದೇ TCP ಪ್ರೋಟೋಕಾಲ್ ಮಾತನಾಡುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ, ಪ್ರಾಕ್ಸಿ ಅಂತ್ಯದಲ್ಲಿನ ಸೇವೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಕನೆಕ್ಟರ್ ಬಳಸಿ.

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.

ದಾಖಲೆ ವಿಳಾಸ ಮತ್ತು ಗಮ್ಯಸ್ಥಾನ ಪೋರ್ಟ್ ಬದಲಾಯಿಸಿ. ಅನುಮತಿಸಲಾದ ಸಾರ್ವಜನಿಕ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ, ಅಪ್ಲಿಕೇಶನ್‌ನ ಗುರಿ ಪೋರ್ಟ್‌ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿದ ನಂತರವೇ SOCKS5 ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿಯಿಂದ ಅಭ್ಯರ್ಥಿ ಆಯ್ಕೆಮಾಡಿ. ಸ್ಥಾಪಿತ ಪ್ಯಾಕೇಜ್, ಬೆಂಬಲಿತ ವಿಧಾನಗಳು ಮತ್ತು ಅಂತ್ಯ ಅಗತ್ಯಗಳನ್ನು PySocks ಇಂಟರ್ಫೇಸ್ ಜೊತೆ ಪರಿಶೀಲಿಸಿ.

ಅಪ್ಲಿಕೇಶನ್‌ನ ಉಳಿದ ಭಾಗವು ತನ್ನ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಈ ಸ್ಥಾಪಿತ ಸಂಪರ್ಕದ ಮೇಲೆ ವಿನಿಮಯ ಮಾಡುತ್ತದೆ. ಆ ಪ್ರೋಟೋಕಾಲ್ TLS ಬಳಸಿದರೆ, ಪ್ರಾಕ್ಸಿ ಮಾತುಕತೆಯ ನಂತರ ಅದನ್ನು ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ನಿಜವಾದ ಗಮ್ಯಸ್ಥಾನ ಹೋಸ್ಟ್‌ಹೆಸರನ್ನು ಪರಿಶೀಲಿಸಿ. ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣವು ಮಾರ್ಗವನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ; ಅದು ಗಮ್ಯಸ್ಥಾನ ಲಾಗಿನ್ ಅಥವಾ ಎನ್‌ಕ್ರಿಪ್ಷನ್ ಒದಗಿಸುವುದಿಲ್ಲ.

SOCKS ಶ್ರೋತೃಕ್ಕೆ SOCKS ಮಾತುಕತೆ ಬೇಕು. HTTP ಸೇವೆಗೆ ಅನಿಯಂತ್ರಿತ TCP ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ CONNECT ಸಾಮರ್ಥ್ಯದ ಕನೆಕ್ಟರ್ ಬೇಕು ಮತ್ತು ಅದು ತನ್ನ ಪೋರ್ಟ್ ನಿರಾಕರಿಸಬಹುದು. ತಪ್ಪು ಹ್ಯಾಂಡ್‌ಶೇಕ್ ಬಿಟ್ಟು ವಿಳಾಸ ಬದಲಿಸುವ ಬದಲು, ನಿಜವಾಗಿ ನೀಡಲಾದ ಸೇವೆಯಿಂದ ಕನೆಕ್ಟರ್ ಆಯ್ಕೆಮಾಡಿ.

ಬದಲಾವಣೆಯನ್ನು ಸ್ಥಳೀಯವಾಗಿರಿಸಿ. socket.socket ಗೆ ಕ್ಲಾಸ್ ನಿಯೋಜಿಸುವುದು ಸಂಬಂಧವಿಲ್ಲದ ಆಮದುಗಳು ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಸಾಕೆಟ್ ರಚನೆಯನ್ನು ಇನ್ನೊಂದು ಗ್ರಂಥಾಲಯ ಹೊಂದಿದ್ದರೆ, ಅದರ ದಾಖಲಿತ ಸಂಪರ್ಕ ಫ್ಯಾಕ್ಟರಿ ಅಥವಾ ಪ್ರಾಕ್ಸಿ ಆಯ್ಕೆ ಬಳಸಿ; ಅದು ಎಂದೂ ಓದದ ನಿಘಂಟು ಆ ಸಂಪರ್ಕವನ್ನು ಬದಲಿಸಲಾರದು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು