2017-03-02 2 views
0

기본적으로 URL 블랙리스트가 있고 프로젝트에서 포트 80을 수신하고 URL에 대한 요청을 127.0.0.1로 리디렉션하려면 C#을 사용해야합니다.C# 포트 포워딩 예제

나는 네트워킹에 관해 많이 알지 못합니다. 나는 몇 가지 주제를 보았지만 이해가되지 않습니다. 좋은 예가 될 것입니다. 따라 오는 몇 가지 설명이 더 나아질 것입니다.

고맙습니다.

답변

2

주제가 포트 전달을 나타냅니다. 포트 포워딩은 URL과 아무 관련이 없으며 구현에 TCP/IP를 잘 이해해야하지만 URL을 "리디렉션"하지는 않습니다.

설명은 포트 80에서 수신 대기하고 요청을 잘못된 URL로 리디렉션하려고 함을 나타냅니다. 즉, 먼저 나쁜 URL을 포트 80으로 리디렉션하고 HTTP 서버를 구현하고 호스트 헤더를 검사하여 클라이언트가 실제로 요청한 내용을 확인하고 블랙리스트를 확인한 다음 http 양식을 작성하는 DNS 서버를 구현해야합니다. 응답을 보내어 클라이언트에게 리다이렉트하도록 지시하지만 어떻게 든 중독 된 DNS 서버가 요청을 다시 보내지 않도록합니다.

정말로 DNS 서버 일 뿐이므로 의심 스럽거나 호스트 파일에 나쁜 URL을 넣고 127.0.0.1로 지정하십시오.

+0

죄송합니다. 나에게 많은 정보가 있습니다. 내 친구는 TCPListener를 사용하여 80 번 포트에서 수신 대기 한 다음 머리글의 포장을 풀 수 있다고 말하면서 검은 색 URL 중 하나에 대한 요청 인 경우 패킷을 다른 곳으로 다시 보냅니다. 가능한 방법인지 궁금합니다. – libra

+0

이미 호스트 파일을 변경하는 기능을 구현했지만 사람이 편집하기가 너무 쉽습니다 – libra

+1

트래픽 검사에 기반한 포트 포워딩과 비슷합니다. 당신은 그것을하기 위해 아주 진보 된 것들을 할 필요가 있습니다. http 헤더를 얻을 수있을만큼 충분히 긴 TCP 핸드 셰이 킹으로 클라이언트를 스푸핑 한 다음 전달 된 서버로 트래픽을 되감기하고 다시 재생하여 클라이언트가 전달한 것을 알지 못하게해야합니다. 스택 오버 플로우 주석에 얼마나 많은 작업이 있는지를 설명 할 방법이 없습니다. – Tim