是否可以使用任何SOCKS客户端lib在Python中通过SOCKS5代理发送UDP数据报?SocksiPy似乎没有用,或者我只是错误地使用它.以下代码不起作用,它尝试直接连接到目标:
s = socks.socksocket ( socket.AF_INET, socket.SOCK_DGRAM )
s.setproxy(socks.PROXY_TYPE_SOCKS5,"socks.proxy.lan")
s.sendto ( payload, ( ip, port ) )
Run Code Online (Sandbox Code Playgroud)
如果我更改SOCK_DGRAM为SOCK_STREAM代码也不起作用,它不会尝试连接任何地方.
下面的代码有什么问题?我使用AsyncSocket连接到SOCKS代理并在onSocketWillConnect委托方法上设置代理设置.如果我省略了调用CFReadStreamSetProperty和CFWriteStreamSetProperty插座式连接器能够顺利跟进.另外,我在一个没有可跟踪堆栈跟踪的解除分配的实例上得到[Not A Type retain](它可能与CFNetwork有关?).有谁知道是什么给出的?
CFDictionaryRef proxyDict = CFNetworkCopySystemProxySettings();
CFMutableDictionaryRef socksConfig = CFDictionaryCreateMutableCopy(NULL, 0, proxyDict);
CFDictionarySetValue(socksConfig, kCFStreamPropertySOCKSProxyHost, CFSTR("192.168.1.148"));
CFDictionarySetValue(socksConfig, kCFStreamPropertySOCKSProxyPort, (__bridge CFNumberRef)[NSNumber numberWithInt:3129]);
CFDictionarySetValue(socksConfig, kCFStreamPropertySOCKSVersion, kCFStreamSocketSOCKSVersion4);
// set SOCKS for read streams
CFReadStreamRef readStream = [sock getCFReadStream];
if (!CFReadStreamSetProperty(readStream, kCFStreamPropertySOCKSProxy, socksConfig)) {
CFStreamError error = CFReadStreamGetError(readStream);
NSLog(@"[SEVERE] Web Socket Read Stream Error: %ld[%ld]", error.domain, error.error);
}
// set SOCKS for write stream
CFWriteStreamRef writeStream = [sock getCFWriteStream];
if (!CFWriteStreamSetProperty(writeStream, kCFStreamPropertySOCKSProxy, socksConfig)) {
CFStreamError error = …Run Code Online (Sandbox Code Playgroud) 如果我将原始HTTP响应作为字符串:
HTTP/1.1 200 OK
日期:2010年5月11日星期二07:28:30 GMT
到期:-1
Cache-Control:private,max-age = 0
Content-Type:text/html; charset = UTF-8
服务器:gws
X-XSS-Protection:1; mode = block
连接:关闭
<!doctype html><html>...</html>
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将它解析为一个HttpListenerResponse对象?或者至少是某种.NET对象,所以我不必使用原始响应.
我目前正在做的是提取标题键/值对并在HttpListenerResponse上设置它们.但是有些头文件无法设置,然后我必须剪切响应的主体并将其写入OutputStream.但是身体可以被gzipped,或者它可能是一个图像,我还无法工作.并且一些响应在任何地方都包含随机字符,这看起来像编码问题.这很麻烦.
我正在获得原始响应,因为我正在使用SOCKS发送HTTP请求.我正在处理的程序基本上是一个HTTP代理,它可以通过SOCKS代理路由请求,就像Privoxy那样.
我使用名为tether的应用程序成功连接到互联网,用于越狱的iPhone.(我知道现在有更好的选择).
我的iphone连接到我的笔记本电脑的wifi"设备网络".
我在OS X网络设置中有一个名为iphone的位置,并且代理配置为使用正确的IP和端口用于手机.
我可以使用Chrome over http和https完美浏览互联网.
iTerm无法ping谷歌.Git不能拉.我用谷歌搜索了几天,看不到任何"简单"或我理解的东西.任何建议表示赞赏.
我想getURL在R.函数中使用Tor.工作正常(在firefox中检查),socks5at port 9050.但是当我在R中设置它时,我得到以下错误
html <- getURL("http://www.google.com", followlocation = T, .encoding="UTF-8", .opts = list(proxy = "127.0.0.1:9050", timeout=15))
Run Code Online (Sandbox Code Playgroud)
curlPerform出错(curl = curl,.opts = opts,.encoding = .encoding):'\n \nTor不是HTTP代理\n \n \n
Tor不是HTTP代理
\n\n您似乎已将Web浏览器配置为使用Tor作为HTTP代理.\n这是不正确的:Tor是SOCKS代理,而不是HTTP代理.\n请相应地配置您的客户端.
我已经尝试用socks,socks5替换代理,但它没有用.
好吧,我一直在尝试在android上使用SOCKS代理.我太挣扎了,我没能正确使用它.
基本上我确实希望通过SOCKS代理获取页面内容HttpURLConnection(必须).
我使用的代码是这样的:
String proxyHost = "192.168.2.2";
int proxyPort = 1999;
InetSocketAddress proxyAddr = new InetSocketAddress(proxyHost, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, proxyAddr);
URL request = new URL("http://requestb.in/sgjga5sg");
HttpURLConnection urlConnection = (HttpURLConnection) request.openConnection(proxy);
urlConnection.setDoInput(true);
urlConnection.setConnectTimeout(36000);
urlConnection.setReadTimeout(44000);
InputStream is = urlConnection.getInputStream();
for (int x = is.read(); x >= 0; x = is.read()) {
System.out.print((char) x);
}
System.out.println();
Run Code Online (Sandbox Code Playgroud)
我知道SocketTimeOutException,这是堆栈跟踪:
java.net.SocketTimeoutException
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
at java.net.PlainSocketImpl.socksReadReply(PlainSocketImpl.java:440)
at java.net.PlainSocketImpl.socksRequestConnection(PlainSocketImpl.java:340)
at java.net.PlainSocketImpl.socksConnect(PlainSocketImpl.java:326)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:181)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
at java.net.Socket.connect(Socket.java:887) …Run Code Online (Sandbox Code Playgroud) 如果没有代理服务器无法访问jcenter,要解决依赖关系,我想使用socks而不是http代理,我如何在commanad行中使用它?我知道如何使用http代理:
-Dhttp.proxyHost=yourProxy -Dhttp.proxyPort=yourPort
-Dhttp.proxyUser=usernameProxy -Dhttp.proxyPassword=yourPassoword
Run Code Online (Sandbox Code Playgroud) ssh -D some-port-number remote-server-url.socks5://localhost:that-port-number-metioned-above)。那么这些概念—— SOCKS5 proxying, ssh tunneling,是如何相互reverse ssh tunneling关联的?
我需要创建一个发出请求(发布、获取等)的多线程应用程序,为此我选择了Httpclient.
默认情况下它不支持 Socks 代理。所以我发现Sockshandler(https://github.com/extremecodetv/SocksSharp)可以用来代替基本的 HttpClientHandler。它允许我使用袜子。
但我有一个问题。我的所有请求都应该通过我从互联网解析的不同代理发送。但 httpclient 处理程序不支持动态更改代理。如果我没有有效的代理,我需要重新创建一个httclient,这没问题,但是如果我有200个线程,则需要大量的cpu。那么这种情况我该怎么办呢?
第二个问题。我发现这篇文章(https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/HttpClient )讨论了作为单个实例使用以获得更好的性能,但在多线程程序中这是不可能的。在这种情况下哪种方式更好?
谢谢帮助
要构建某个图像,我需要创建一个隧道并使 docker 使用此隧道作为 socks5 代理(也将代理用于 DNS)。
所以现在我有几个问题: