用Tor在程序里自动切换ip
作者: 阿范 日期: 2010-03-07 09:44
转帖一段c#的代码,出自http://www.cnblogs.com/sxlfybb/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;
using System.IO;
namespace TORDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.ip-number.com/index.asp");
WebProxy proxy = new WebProxy("127.0.0.1",8118);
req.Proxy = proxy;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
using (Stream stream = res.GetResponseStream())
{
StreamReader sr = new StreamReader(stream);
string str = sr.ReadToEnd();
sr.Close();
string pattern = @".*(?<Value>((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1}).){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})).*";
Regex reg = new Regex(pattern);
if(reg.IsMatch(str))
{
Match m = reg.Match(str);
MessageBox.Show(m.Value);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
TcpClient client = new TcpClient();
client.Connect("127.0.0.1", Convert.ToInt32(tbPort.Text));
NetworkStream stream = client.GetStream();
byte[] cmd = null;
string strCmd = string.Format("AUTHENTICATE "{0}"rn",tbPwd.Text);
cmd = System.Text.Encoding.Default.GetBytes(strCmd);
stream.Write(cmd, 0, cmd.Length);
byte[] buffer = new byte[2];
int count = 0;
string strResponse = "";
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
while (count != 0 && stream.DataAvailable)
{
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
if (count < buffer.Length)
{
break;
}
}
if (strResponse.IndexOf("250") == -1)
{
MessageBox.Show("AUTHENTICATE Fail!");
return;
}
buffer = new byte[1024];
strCmd = "signal NEWNYMrn";
cmd = System.Text.Encoding.Default.GetBytes(strCmd);
stream.Write(cmd, 0, cmd.Length);
strResponse = "";
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
while (count != 0 && stream.DataAvailable)
{
count = stream.Read(buffer, 0, buffer.Length);
strResponse += System.Text.Encoding.Default.GetString(buffer, 0, count);
if (count < buffer.Length)
{
break;
}
}
if (strResponse.IndexOf("250") == -1)
{
MessageBox.Show("Switch Identity Fail!");
return;
}
else
{
MessageBox.Show("Switch OK!");
}
}
catch (Exception ex)
{
MessageBox.Show("error:" + ex.Message);
}
}
}
}
| Ancient Kings guard: new skill level Pal summons a temporary guardian, seemingly wear light wow powerleveling armour and shield winged creature. Depending on the validity of similar warcraft III paladin resurrection. |
订阅
上一篇
返回
下一篇
标签:
