2017-01-16 6 views
0

私のクライアントには、ユーザーの入力に基づいて特定のURLをブロックする必要があります。 私は、ドライバをビルドすることでこれを実装しようと考えていました。これを使って、パケットの応答をすべての詳細で得ることができます。これは、アプリケーションを構築することによってブロック/許可することができます(これはWindowsの "netfilter"OS X用のドライバを使用したURLフィルタリング

しかし、私は、この特定の要件のためにを続行するのに十分な情報を取得していないドキュメントやウェブサイトを通じて読んで。(私はBPFについて見つかりましたが、を続行するのに十分な詳細がありませんでした)

、私は非常に午前とドライバのフィールドに多くの新しい、この場合、どのように進行するかを誰かに教えてもらえますか?(進行方法の手順)

注:USBドライバに関連するプロジェクト/それ以外のすべての人は、さらに進んでいくための十分な考えを与えていませんでした。

答えて

1

"URL"は非常に幅が広​​く、URLの種類(どのプロトコル?暗号化についてはどうでしょうか?)と必要な細かさによっては、カスタムkext以外の解決策が良いかもしれません。あなたの要件を知らないので、私はそれが事実であるかどうかは言えません。

でき答え、Network Kernel Extensionsはあなたに見えるために必要なものですが、あなたが場合はKEXTからこれを実行することを決定したということです。

Appleはまた、the enetlognke example codeを提供して、NKE APIの使い方を説明しています。

+0

私はURLを例として取り上げましたが、主にパケットベースのコントロールとサンプルに集中して、コンセプトを理解するのを助けてくれました。私がkextを知っているので、私は同じことを進めたいと思います。 – Darshan

+0

しかし、出力されるログは、 [...] enetlognke out IPv4 a820662e49ca | 000c29f281ec | 0800 | 45000054 98しかし、上記の出力からソースと宛先IPを取り出すことができませんでした(この16進値を変換しようとしましたa820662e49caからipフォーマットへと変更されましたが、常に間違ったipの詳細が出ました)。 上記の値を変換する方法はありますか。 – Darshan

+0

'a820662e49ca'はMACアドレスのようです。 (ベンダー:Apple)この出力が表示されている例のコードコメントは、パケットがイーサネットフレームであることを示しています。そのため、まずIPパケットの開始位置を見つけてヘッダーを確認する必要があります。 – pmdj

関連する問題