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 සඳහා පන්තියක් පැවරීම අදාළ නොවන ආයාත සහ පුස්තකාලවලට බලපෑ හැක. වෙනත් පුස්තකාලයක් සොකට් නිර්මාණය හිමිකරගන්නේ නම්, එහි ලේඛනගත සම්බන්ධතා කර්මාන්තශාලාව හෝ ප්රොක්සි විකල්පය භාවිත කරන්න; එය කිසිදා කියවන්නේ නැති ශබ්දකෝෂයකට එම සම්බන්ධතාවය වෙනස් කළ නොහැක.