2011-04-13 6 views
2

C#으로 작성된 Windows 서비스에서 특정 URL을 동적으로 차단하고 싶습니다. 호스트 파일에 쓰면이 작업을 수행하고 싶지 않습니다.C#에서 동적으로 웹 사이트를 차단하는 방법은 무엇입니까?

예를 들어, 모든 브라우저에서 http://example.com이라는 URL을 차단하고 싶지만 오전 7 시부 터 오전 8 시까 지 http://example.com/another을 차단하십시오.

가능합니까, 어떻게해야합니까?

안부, 앤드류

+1

모든 브라우저에서 작동하려면 호스트에 쓰는 것이 가장 좋습니다. –

+0

[RFC-2606] (http://www.faqs.org/rfcs/rfc2606.html) –

+0

에 지정된 도메인 이름 예를 들어'example.com'을 사용하십시오. 호스트에 도메인 이름을 추가하십시오 '파일은 정확한 이름 해석만을 차단합니다. 프로세스는 여전히 IP 주소를 사용하여 사이트에 액세스 할 수 있습니다. – sinelaw

답변

2

당신은 Windows Firewall API 사용할 수 있습니다. John Cole의 기사 Managed classes to view/manipulate the Windows Firewall을 참조하십시오.

+0

좋은 아이디어. 하지만 사용자가 방화벽을 끄면 나는 생각하지 않을 것이다. 또한 타사 방화벽을 사용할 때 작동하지 않습니다. 나는 어떤 종류의 프록시를 사용할 수 있다고 생각했다. – Andrew

-2

이제 블록 개념을 보여줍니다. Google 웹 사이트. 이 솔루션이 도움이되기를 바랍니다.

private void BlockWebsite_Click(object sender, EventArgs e) 
    { 
     String path = @"C:\Windows\System32\drivers\etc\hosts"; 
     StreamWriter sw = new StreamWriter(path, true); 
     String sitetoblock = "\n 127.0.0.1 google.com"; 
     sw.Write(sitetoblock); 
     sw.Close(); 
     MessageBox.Show("Site Blocked"); 
    } 
} 
+1

OP는'/ etc/hosts' 파일에 쓰지 않는 솔루션을 요청했습니다. 당신이 이것을 주장한다면, OP의 요청에도 불구하고 사용해야 만하는 이유를 제공하십시오. – glen3b

관련 문제