如何实现代理的扫描?
发布网友
发布时间:2022-05-06 15:10
我来回答
共3个回答
热心网友
时间:2022-07-01 03:37
每当提到搜索代理服务器地址,首先想到的大概是《代理猎手》这款经典工具。但是,它的相关设置对于初学者而言并非轻而易举就能掌握。因此,笔者在本文中为大家介绍一款傻瓜化的工具——《代理服务器搜索者》。它最突出的特色在于支持程序自动搜索,通过实时获得的IP地址段,全自动化扫描并显示有效代理服务器。 代理服务器搜索者小档案: 软件版本:v1.8 简体中文版 授权方式:免费软件 软件大小:2313KB 运行环境:Win9X/Me/NT/2000/XP /2003 下载地址:http:// www.goodproxy.com/download/cnpf.exe 运行《代理服务器搜索者》程序后,你可以不作任何设置,直接将它最小化至系统托盘后,让程序自动搜索。在搜索过程中,你可随时把鼠标指针置于托盘中的程序图标上,在显示的提示信息中,获知当前的扫描线程、检验线程以及总代理数量(即已搜索出的有效代理服务器地址)。当发现已扫描出代理信息后,双击图标即可显示程序主界面(图1)。在“所有记录”项目中显示了若干代理服务器IP、端口及代理类型等信息。此时,你可以将选中的代理服务器拷贝到内存中,以便于在“Internet选项”的“代理服务器设置”中直接粘贴。也可以将选中的代理或全部代理导出至文本文件中,以便于日后调用。以上提及的这些操作大家在“动作”项目中可按需执行。 随着搜索到的代理服务器地址越来越多,你会发现“代理类型”都不尽相同,有些是SOCKS协议,有些是HTTP协议……下列表中是这些不同类型的代理服务器常用的端口以及实际用途。 当然你也可以自定义《代理服务器搜索者》程序设置。例如,可自定义搜索IP地址段;自行添加预搜索端口;管理检验选项及更改线程设置等等。这些会因使用者的个人需求及网络状态而异。 随着搜索到的代理服务器地址越来越多,你会发现“代理类型”都不尽相同,有些是SOCKS协议,有些是HTTP协议……下列表中是这些不同类型的代理服务器常用的端口以及实际用途。 当然你也可以自定义《代理服务器搜索者》程序设置。例如,可自定义搜索IP地址段;自行添加预搜索端口;管理检验选项及更改线程设置等等。这些会因使用者的个人需求及网络状态而异。 获得匿名代理 有些代理服务器是对公众开放的,而有些则是匿名的,如果你要使用匿名代理访问Web地址,则可以使用软件检测匿名代理。Winnow Anonymous Proxy这款软件就可以隐藏你的真实IP,匿名访问Web地址。它通过匿名代理服务器给用户提供另一个IP地址。 Winnow Anonymous Proxy小档案: 软件版本:v2.0 软件语言:英文 授权方式:共享软件 软件大小:775KB 运行环境:Win9X/Me/NT/2000/XP /2003 下载地址:http:// www.winnowsoft.com/wap.exe
热心网友
时间:2022-07-01 03:38
代理服务器就是一个跳板,要不显示的都是你的地址了,容易找到啊
好久没写东西,工作太忙,人也懒了点,无聊之中,随便学点东西,一个简单的端口扫描,可以试着改进 :
//===========================================================
// C# 实现端口扫描
//===========================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace ConsoleApplication3
{
class Program
{
//已扫描端口数目
internal static int scannedCount = 0;
internal static int runningThreadCount = 0;
internal static List <int> openedPorts = new List <int>();
static int startPort = 1;
static int endPort = 500;
static int maxThread = 100;
static void Main(string[] args)
{
//简单提示
Console.WriteLine("////////////////////////////////////////////////////////////////////////////////////");
Console.WriteLine("// Writer;Feeling");
Console.WriteLine("////////////////////////////////////////////////////////////////////////////////////");
Console.WriteLine("请输入要扫描的主机;");
string host = Console.ReadLine();
Console.WriteLine("请输入扫描的端口 例如:1-800");
string portRange =Console.ReadLine();
startPort = int.Parse(portRange.Split('-')[0].Trim());
endPort = int.Parse(portRange.Split('-')[1].Trim());
for (int port = startPort; port < endPort; port++)
{
Scanner scanner = new Scanner(host, port);
Thread thread = new Thread(new ThreadStart(scanner.Scan));
thread.Name = port.ToString();
thread.IsBackground = true;
thread.Start();
runningThreadCount++;
Thread.Sleep(10);
//循环,直到某个线程工作完毕才启动另一新线程,也可以叫做推拉窗技术
while (runningThreadCount >= maxThread) ;
}
//空循环,直到所有端口扫描完毕
while (scannedCount + 1 < (endPort - startPort)) ;
Console.WriteLine();
Console.WriteLine();
//输出结果
Console.WriteLine("Scan for host:{0} has been completed, \n total {1} ports scanned, \n opened ports:{2}", host, (endPort - startPort), openedPorts.Count);
foreach (int port in openedPorts)
{
Console.WriteLine("\tport: {0} is open", port.ToString().PadLeft(6));
}
Console.ReadLine();
}
}
class Scanner
{
string m_host;
int m_port;
public Scanner(string host, int port)
{
m_host = host;
m_port = port;
}
public void Scan()
{
TcpClient tc = new TcpClient();
tc.SendTimeout = tc.ReceiveTimeout = 2000;
try
{
tc.Connect(m_host, m_port);
if (tc.Connected)
{
Console.WriteLine("Port {0} is Open", m_port.ToString().PadRight(6));
Program.openedPorts.Add(m_port);
}
}
catch
{
Console.WriteLine("Port {0} is Closed", m_port.ToString().PadRight(6));
}
finally
{
tc.Close();
tc = null;
Program.scannedCount++;
Program.runningThreadCount--;
}
}
}
}
热心网友
时间:2022-07-01 03:38
我拿来用用
谢谢楼主和二楼!!