Python TCP சாக்கெட்டுகளுக்கான SOCKS அறிந்த இணைப்பி
ப்ராக்ஸியை அறிந்த சாக்கெட் இணைப்பியைத் தேர்ந்தெடுத்து, அதன் எல்லையை Python இன் செயல்முழுவதும் பயன்படும் சாக்கெட் செயலாக்கத்திலிருந்து தனியாக வைத்திருங்கள்.
http_proxy இருப்பதால் மட்டும் ஒரு மென்மையான Python சாக்கெட் ப்ராக்ஸியுடன் பேச்சுவார்த்தை நடத்தாது. தனது சொந்த 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 க்கு ஒரு வகுப்பை ஒதுக்குவது தொடர்பில்லாத இறக்குமதிகள் மற்றும் நூலகங்களைப் பாதிக்கலாம். சாக்கெட் உருவாக்கத்தை வேறு நூலகம் வைத்திருந்தால், அதன் ஆவணப்படுத்தப்பட்ட இணைப்பு தொழிற்சாலை அல்லது ப்ராக்ஸி விருப்பத்தைப் பயன்படுத்துங்கள்; அது ஒருபோதும் படிக்காத அகராதி அந்த இணைப்பை மாற்ற முடியாது.