- Регистрация
- 18.08.2015
- Сообщения
- 154
- Благодарностей
- 15
- Баллы
- 18
Исходник
Скомпилировать можно к примеру в dll и подключить к проекту, но это не обязательно как вы понимаете.
Вызов
TelnetConnection tc = new TelnetConnection("192.168.1.1", 23);
tc.Login("admin", "пароль от роутера", 2000);
//команды других производителей роутеров гуглятся
tc.SendCommand("interface (PPPoE0 или ISP)")
tc.SendCommand("no up");
System.Threading.Thread.Sleep(5000);
tc.SendCommand("up");
System.Threading.Thread.Sleep(5000);
C#:
using System;
using System.Text;
using System.Net.Sockets;
namespace SimpleTelnet
{
public class TelnetConnection
{
readonly TcpClient tcpSocket;
readonly int TimeOutMs = 100;
public TelnetConnection(string Hostname, int Port)
{
tcpSocket = new TcpClient(Hostname, Port);
System.Threading.Thread.Sleep(2500);
}
public string Login(string Username, string Password, int LoginTimeOutMs = 1000)
{
SendCommand(Username);
System.Threading.Thread.Sleep(LoginTimeOutMs);
SendCommand(Password);
return "authorized";
}
public void SendCommand(string cmd)
{
Write(cmd + Environment.NewLine);
System.Threading.Thread.Sleep(TimeOutMs);
}
public void Write(string cmd)
{
if (!tcpSocket.Connected) return;
byte[] buf = ASCIIEncoding.ASCII.GetBytes(cmd.Replace("\0xFF", "\0xFF\0xFF"));
tcpSocket.GetStream().Write(buf, 0, buf.Length);
}
}
}
Вызов
TelnetConnection tc = new TelnetConnection("192.168.1.1", 23);
tc.Login("admin", "пароль от роутера", 2000);
//команды других производителей роутеров гуглятся
tc.SendCommand("interface (PPPoE0 или ISP)")
tc.SendCommand("no up");
System.Threading.Thread.Sleep(5000);
tc.SendCommand("up");
System.Threading.Thread.Sleep(5000);