c#重起 普通路由器

using DotNet.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace reboot2
{
class Program
{
static void Main(string[] args)
{

Disconnect();
Thread.Sleep(100);
connect();
while (true)
{
try
{
if (IsConnectedPing())
//if(IsConnectedToInternet())
{
Console.WriteLine("\nConnectedToInternet ...\n");
break;
}
}
catch
{
Console.WriteLine("\n\nerror ...\n");
}
Thread.Sleep(1000);
}
ip();
// Console.ReadLine();
}

private static void ip()
{

//
var _UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0";
HttpHelper http = new HttpHelper();
var _Referer = "http://www.ip138.com";
HttpItem item = new HttpItem()
{

Encoding = Encoding.Default,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别
URL = "http://1111.ip138.com/ic.asp",//URL这里都是测试 必需项
Method = "get",//URL 可选项 默认为Get
UserAgent = _UserAgent,
Referer = _Referer

};
//得到HTML代码
HttpResult result = http.GetHtml(item);
Console.WriteLine(result.Html);
}
private static void Disconnect()
{
var url = "http://192.168.1.1/userRpm/StatusRpm.htm?Disconnect=%B6%CF%20%CF%DF&wan=1";
var cookie = "Authorization=Basic%20YWRtaW46cWluaGFuMjAxNA%3D%3D; ChgPwdSubTag=";
var _UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0";
var _Referer = "http://192.168.1.1/userRpm/StatusRpm.htm";
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
Cookie = cookie,
Encoding = Encoding.Default,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别
URL = url,//URL这里都是测试 必需项
Method = "get",//URL 可选项 默认为Get
UserAgent = _UserAgent,
Referer = _Referer

};
//得到HTML代码
HttpResult result = http.GetHtml(item);
Console.WriteLine("Disconnect....");
// Console.ReadLine();

}
private static void connect()
{
var url = "http://192.168.1.1/userRpm/StatusRpm.htm?Connect=%C1%AC%20%BD%D3&wan=1";
var cookie = "Authorization=Basic%20YWRtaW46cWluaGFuMjAxNA%3D%3D; ChgPwdSubTag=";
var _UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0";
var _Referer = "http://192.168.1.1/userRpm/StatusRpm.htm?Disconnect=%B6%CF%20%CF%DF&wan=1";
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
Cookie = cookie,
Encoding = Encoding.Default,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别
URL = url,//URL这里都是测试 必需项
Method = "get",//URL 可选项 默认为Get
UserAgent = _UserAgent,
Referer = _Referer
};
//得到HTML代码
HttpResult result = http.GetHtml(item);
Console.WriteLine("connect....");
// Console.WriteLine(result.Html);
// Console.ReadLine();

}
public static bool IsConnectedPing()
{
Console.WriteLine("weixin.sogou.com");
string hostNameOrAddress = "weixin.sogou.com";
Ping ping = new Ping();
PingReply pingReply = ping.Send(hostNameOrAddress);
if (pingReply.Status == IPStatus.Success)
{
Console.WriteLine("网络连接成功, 执行下面任务...");
ping.Dispose();
return true;
}
int i = 0;
while (i < 12)
{
Thread.Sleep(50);
pingReply = ping.Send(hostNameOrAddress);
Console.WriteLine(pingReply.Status);
i++;
if (pingReply.Status == IPStatus.Success)
{
ping.Dispose();
return true;
}
}
Console.WriteLine("重新尝试连接超过12次,连接失败程序结束");
ping.Dispose();
return false;
}
}
}

转载于:https://www.cnblogs.com/bigdata007/p/4955869.html

我们目前使用的路由器都是WEB界面管理的,真正支持TELNET(23端口)的路由器很少.针对于此.我们可以通过socket操作路由器的80端口.路由器发送指令让它断线. 同时将路由器设置为自动连接.就能实现断线自动换IP功能了. 路由器登录验证方式是采用BASE64加密 登录名:密码 这样的格式.如admin:admin得到的加密码串是YWRtaW46YWRtaW4= 在c#里可以很容易的实现 Convert.ToBase64String(Encoding.Default.GetBytes("admin:admin")) 我们使用HTTP的GET操作 GET /userRpm/StatusRpm.htm?Disconnect=%B6%CF+%CF%DF&wan=1 HTTP/1.1 Host:192.168.1.1 Authorization:Basic YWRtaW46YWRtaW4= 就可以实现调用路由器断线操作 同理也可以用 GET /userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7 HTTP/1.1 Host:192.168.1.1 Authorization:Basic YWRtaW46YWRtaW4= 来实现路由器启 以上地址在TPLINK WR740N 和TPLINK R402M测试通过 其它品牌的路由器可以通过MX3的网络监控功能获取 获取的代码片断: 采用GET方式 var wlan_wds = 1; var wlan_rate = 0; <!-- function doRefresh() { location.href="/userRpm/StatusRpm.htm"; return true; } function doConnect(n) { var s = "&wan="+n; location.href="/userRpm/StatusRpm.htm?Connect=连 接"+s;return true; } function doDisConnect(n) { var s = "&wan="+n; location.href="/userRpm/StatusRpm.htm?Disconnect=断 线"+s;return true; } 断线调用的就是"/userRpm/StatusRpm.htm?Disconnect=断 线"这个地址 请不要使用本程序进行违反互联网法规的操作,更多c#应用欢迎交流
非常好用, │ DotNet.Utilities.csproj │ DotNet.Utilities.sln │ DotNet.Utilities.suo │ HttpHelper.cs │ IpHelper.cs │ PDFHelper.cs │ SerializeHelper.cs │ SqlHelper.cs │ ├─bin │ └─Debug │ DotNet.Utilities.dll │ DotNet.Utilities.pdb │ Excel.dll │ HtmlAgilityPack.dll │ ICSharpCode.SharpZipLib.dll │ itextsharp.dll │ Microsoft.Office.Interop.Owc11.dll │ OWC10Chart.dll │ ├─Chart图形 │ Assistant.cs │ OWCChart11.cs │ ├─Cookie&Session │ CookieHelper.cs │ SessionHelper.cs │ SessionHelper2.cs │ ├─FTP操作类 │ edtFTPnet.dll │ FTPClient.cs │ FTPHelper.cs │ FTPOperater.cs │ FTP使用说明.txt │ ├─JSON操作 │ ConvertJson.cs │ ├─JS操作 │ JsHelper.cs │ ├─obj │ └─Debug │ DesignTimeResolveAssemblyReferencesInput.cache │ DotNet.Utilities.csproj.FileListAbsolute.txt │ DotNet.Utilities.dll │ DotNet.Utilities.pdb │ ├─Properties │ AssemblyInfo.cs │ ├─XML操作类 │ XmlHelper.cs │ XMLProcess.cs │ ├─上传下载 │ DownLoadHelper.cs │ FileDown.cs │ FileUp.cs │ UpLoadFiles.cs │ ├─加密解密 │ DEncrypt.cs │ DESEncrypt.cs │ Encrypt.cs │ HashEncode.cs │ MySecurity.cs │ RSACryption.cs │ ├─图片 │ ImageClass.cs │ ImageDown.cs │ ImageUpload.cs │ ├─字符串 │ StringHelper.cs │ ├─导出Excel │ DataToExcel.cs │ ExcelHelper.cs │ ExportExcel.cs │ GridViewExport.cs │ ├─文件操作类 │ DirFile.cs │ FileOperate.cs │ INIFile.cs │ ├─时间戳 │ TimeHelper.cs │ ├─条形码 │ BarCodeToHTML.cs │ ├─正则表达式 │ RegexHelper.cs │ ├─汉字转拼音 │ EcanConvertToCh.cs │ PinYin.cs │ ├─类型转换 │ ConvertHelper.cs │ ├─缓存 │ CacheHelper.cs │ DataCache.cs │ ├─网站安全 │ WebSafe.cs │ 使用说明.txt │ ├─网络 │ NetHelper.cs │ ├─视频转换类 │ VideoConvert.cs │ ├─计划任务 │ IntervalTask.cs │ TimerInfo.cs │ 计划任务使用说明.txt │ ├─配置文件操作类 │ ConfigHelper.cs │ ├─随机数类 │ BaseRandom.cs │ RandomHelper.cs │ RandomOperate.cs │ └─验证码 YZMHelper.cs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值