2017-05-03 14 views
0

今日、私はC#でデスクトップアプリケーションを作成して、特定の時間間隔でウェブサイトへのアクセスをブロックしたいと思っています。私はすでにR & Dを行っており、次のサンプルコードを使用してこれを達成できることを確認します。C#を使用してウェブサイトへのアクセスをブロックする

String path = @"C:\Windows\System32\drivers\etc\hosts"; 
StreamWriter sw = new StreamWriter(path, true); 
String sitetoblock = "\n 127.0.0.1 stackoverflow.com"; 
sw.Write(sitetoblock); 
sw.Close(); 
MessageBox.Show("Site Blocked"); 

あなたは私たちがホストを使用してそれを達成することができ、コードの上で見ることができるようには、Windowsディレクトリ内のファイルが、私はにはこの方法を通してそれを行ってほしくありません。これを達成する別の方法がありますか?

ありがとうございます!!!!

+0

これは個々のPCまたはドメインでですか?これは買い物の質問のビットです:*私はこのようにすることができます - そこに他の方法は何ですか?* –

+0

@ JeremyThompson何か他の方法を聞く?どのような問題もさまざまな方法で解決できます。 – loneshark99

+0

@ loneshark99私は、方法が満足のいくものでない理由を述べたいと思います。例えば、ホストファイルを変更するとユーザーが元に戻すことができ、クライアントの設定を変更することは望ましくありません。 Nikhilは少なくとも何らかの調査をしました。その理由から、私は買い物の質問として近づいて投票しておらず、ただのコメントとしてそれを言いました。 –

答えて

2

Windows Filtering Platformを使用できますが、これはこの目的のために構築されています。 これはC#でこれを行う方法に関する古い記事です: Packet Filtering in .NET (この記事では廃止予定のWin2K Packet Filtering APIを使用しています)。ここにはthread discussing WFP in C#があります。

ただし、この種のブロッキングは、ルータで可能な限り妨げられないように、ルーターで行うのが最適です。

関連する問題