Wpis z mikrobloga

Witajcie Mirki. Pracuję nad socketami w C# . Docelowo mam przekazać ruch przez proxy server(socket) pobierać adress www z przglądarki i uzyskać jego IP oraz zablokować jakiś adres z listy string. Dla uproszczenia w poniższym kodzie podstawiam www.wykop.pl.

private void _tbniUruchomSerwer_Click(object sender, EventArgs e)
{
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
IPAddress LocalIP = localIPs[1];

TcpListener listener = new TcpListener(LocalIP, 80); // nasz serwer
listener.Start();

TcpClient newClient; // akceptacja
StreamReader reader; // a reader jest po stronie serwera

int s = 1;
string adresWWW = string.Empty;

while (s == 1)
{
newClient = listener.AcceptTcpClient(); // akceptacja
reader = new StreamReader(newClient.GetStream()); // a reader jest po stronie serwera
adresWWW = reader.ReadLine();
adresWWW = "www.wykop.pl";

IPAddress[] wwwIP = Dns.GetHostAddresses(adresWWW);
string remoteServer = wwwIP[0].ToString();
ConnectSocket(new IPEndPoint(LocalIP, 0), remoteServer, 8080);
}
}

Otrzymuje adres IP: http://185.66.120.38/

private static Socket ConnectSocket(IPEndPoint localEndpoint, string remoteServer, int remotePort)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(localEndpoint);
s.Connect(remoteServer, remotePort);
return s;
}

Na S.Connect zawiesza mi się program i kończy się Exception TimeOut.

A gdy wpisuję dany adres IP do przeglądarki to łapie AntiDDOS.

Anti DDoS Protection
557 ERROR
An error occured. Page 185.66.120.38 cannot be displayed.
Direct IP access not allowed, please use domain name.

W moim projekcie chcę przepuszczać ruch przeglądarki przez SOCKET i zablokować adress z listy a nie mogę nawet przepuścić ruchu. Ktoś pomoże? ()

#naukaprogramowania #csharp
#sockets #proxy #tcpip #http
  • 5
  • Odpowiedz
@Myrten: Ta to rozumiem, ale jak połączyć się przez hostname. A po za tym oprócz tego chyba jeszcze wiele mi brakuje do przekazania ruchu ( ͡º ͜ʖ͡º).
Zapomniałem dodać, że
s.Connect(hostnamee, remotePort);
też zwraca ten sam błąd.
  • Odpowiedz