私は、ipレベルで独自のパケットを形成し、データを送信するカーネルモジュールを作成しています。私はちょうどローカルネットワークインターフェイスのIPアドレスを見つける方法を知りたいです。カーネルモジュールからローカルNICのip-addressを取得
答えて
ioctls SIOCGIFADDR
(アドレスの場合)とSIOCSIFADDR
(アドレスの場合)を定義しています。
IPv4のすべてのデバイス設定は、net/ipv4/devinet.c
で行われます。詳細は、このソースファイルを参照してください。
私はカーネルスペースのIPアドレスにioctlを使用したいと思います.....どうすればいいですか?コードを書くことで伝えてください – karan421
インターフェイスのアドレスを読みたい場合は、設計上問題があります。ただし、リモートピアに接続するときに使用する優先送信元アドレスを決定する場合は、ip6_route_output
で取得した後にstruct rt6_info.rt6i_prefsrc
で指定します。 (なし暗黙の保証付)の線に沿って何か:
int pick_addr(struct in6_addr *saddr, struct net *net, const struct in6_addr *daddr)
{
struct rt6_info *rt;
struct flowi6 fl6;
int ret;
memset(&fl6, 0, sizeof(fl6));
memcpy(&fl6.daddr, daddr, sizeof(*daddr));
dst = (struct rt6_info *)ip6_route_output(net, NULL /* or sk if you have it */, &fl6);
ret = rt->dst.error;
if (ret == 0)
memcpy(saddr, &rt->rt6i_prefsrc.addr, sizeof(*saddr));
dst_release(&rt->dst);
return ret;
}
このコードはip 6のようです。ip 4が必要です。 – karan421
IPv4スケルトンについてはnet/netfilter/xt_TEE.cを参照してください)。 prefaddrは 'struct rtable.rt_src' AFAICSにあります。 –
我々はのlinux-XYZ /ドキュメント/ネットワーキング/ ifenslave.cにどのようにの非常に良い例ですファイルを利用できる if_getconfig機能を持っていますioctlsを使用し、カーネルスペースからアドレスを取得する
- 1. CloseableHttpAsyncClientで複数のNICを持つローカルIPを取得
- 2. NIC - ライトウェイトフィルタドライバのローカルIP
- 3. pingホストからIpAddressを取得するC#
- 4. NICスピードモードを遠隔から取得するには?
- 5. C#アクティブなNICのIPv4アドレスを取得
- 6. ユーザスペースからLinuxカーネルモジュールのリストを取得する方法Cコード?
- 7. ローカルの.resxファイルから値を取得
- 8. カーネルモジュールのファイルシステムマウントポイントを取得する
- 9. アンドロイドからローカルsqliteデータベースを取得
- 10. ローカルJavaScriptからJSONを取得
- 11. カーネルモジュールでルートデバイスを取得する
- 12. NICから送受信された累積バイトを取得する
- 13. GenericDaoで共通の値(IpAddress、TenantId)を取得する方法は?
- 14. Windowsのコマンドラインからvboxnet0 NICを取り除く方法
- 15. NICの数とその情報を取得する方法
- 16. LinuxのNIC /イーサネットカードリンクステータスのイベントを取得します
- 17. ケーブルで接続中にIpAddressを取得する方法
- 18. Ohaiが正しいipaddressを取得していません
- 19. LinuxでNIC RXリングの数を取得する方法
- 20. python ipaddress、最初に使用可能なホストのみを取得しますか?
- 21. リストボックスから特定のユーザーのIpaddressを取得するにはどうすればいいですか?
- 22. カーネルモジュールのGPIOから値を読み取れません
- 23. 別のローカル仮想ホストからの雄弁なクエリを取得
- 24. リモートサーバーのMySqlデータベースからローカル文字を取得する方法
- 25. ローカルのJsonファイルionicからデータを取得3
- 26. JVM上のスタックフレームからローカル変数を取得する
- 27. カーネルモジュールのすべてのマウントポイントを取得する
- 28. ネットワークジッタと帯域幅を取得するためのカーネルモジュール?
- 29. Linuxカーネルモジュールの作成時にユーザープロセスPIDを取得する
- 30. SCRIPT1014の取得:ローカルjsファイルから無効なIEの文字
ネットワークインターフェイスは、多くの異なる送信者からのパケットを受信できます。受信したパケットから送信者を取得します。 –
@JoachimPileborg私のインターフェイスのIPアドレスが必要です。私のインターフェースのIPアドレスを取得する機能はありませんか?私はトラフィックを生成しているので、rxパケットをキャプチャしてそこから取得したくない – karan421
質問とタイトルを編集してより明確にしました。 –