Cysylltydd sy'n ymwybodol o SOCKS ar gyfer socedi TCP Python
Dewiswch gysylltydd soced sy'n deall y dirprwy a chadwch ei gwmpas ar wahân i weithrediad soced eang Python.
Nid yw soced Python crai yn trafod dirprwy oherwydd bod http_proxy yn bodoli. Ar gyfer rhaglen sy'n siarad ei phrotocol TCP ei hun, defnyddiwch gysylltydd sy'n deall y gwasanaeth ym mhen y dirprwy.
Gyda PySocks ar gael yn barod, crëwch y cysylltiad yn benodol:
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.
Amnewidiwch y cyfeiriad dogfennaeth a'r porth cyrchfan. Ar gyfer cyrchfan gyhoeddus a ganiateir, dewiswch ymgeisydd o'r rhestr dirprwy SOCKS5 dim ond ar ôl gwirio ei fod yn caniatáu porth targed y rhaglen. Gwiriwch y pecyn sydd wedi'i osod, y dulliau a gefnogir a gofynion y pen terfyn yn erbyn rhyngwyneb PySocks.
Mae gweddill y rhaglen yn cyfnewid ei phrotocol dros y cysylltiad sefydledig hwn. Os yw'r protocol hwnnw'n defnyddio TLS, dechreuwch ef ar ôl trafod y dirprwy a gwirio gwir enw'r gwesteiwr cyrchfan. Mae dilysu'r dirprwy yn sefydlu'r llwybr; nid yw'n darparu mewngofnod y gyrchfan na amgryptio.
Mae angen trafod SOCKS ar wrandawr SOCKS. Mae angen cysylltydd sy'n gallu CONNECT ar wasanaeth HTTP ar gyfer cyrchfan TCP mympwyol, ac efallai y bydd yn gwrthod ei borth. Dewiswch y cysylltydd yn ôl y gwasanaeth a gynigir mewn gwirionedd, yn hytrach na newid cyfeiriad a gadael yr ysgwyd llaw anghywir.
Cadwch yr amnewid yn lleol. Gall aseinio dosbarth i socket.socket effeithio ar fewnforion a llyfrgelloedd digyswllt. Os yw llyfrgell arall yn berchen ar greu socedi, defnyddiwch ei ffatri cysylltu neu ei hopsiwn dirprwy dogfenedig; ni all geiriadur nad yw byth yn ei ddarllen newid y cysylltiad hwnnw.