問題タブ [iphelper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - IPアドレス文字列をC#のuint値にどのように解析しますか?
Windows IP Helper APIを使用するC#コードを書いています。私が呼び出そうとしている関数の1つは、IPの「uint」表現をとる「 GetBestInterface 」です。私が必要としているのは、IPのテキスト表現を解析して、「uint」表現を作成することです。
これやこれのようなグーグル経由でいくつかの例を見つけましたが、.NETでこれを達成するための標準的な方法があるはずだと確信しています。唯一の問題は、この標準的な方法が見つからないことです。IPAddress.Parseは正しい方向にあるように見えますが、「uint」表現を取得する方法を提供していません。
IP Helperを使用して、ParseNetworkStringを使用してこれを行う方法もありますが、繰り返しになりますが、.NETを使用したいと思います。pInvokeへの依存度が低いほど良いと思います。
だから、誰もが.NETでこれを行うための標準的な方法を知っていますか?
windows - どの NIC がインターネットに接続されているかを調べるにはどうすればよいですか?
次の設定を検討してください: LAN インターフェースと WiFi インターフェースを備えた Windows PC (新しいラップトップの標準)。各インターフェイスは、ネットワークに接続されているか、ネットワークから切断されている可能性があります。どちらのアダプターがインターネットに接続されているかを判断する方法が必要です。具体的には、両方が異なるネットワークに接続されている場合、一方はインターネットに接続されており、もう一方は接続されていません。
私の現在の解決策は、IPHelper の " GetBestInterface " 関数を使用し、それに IP アドレス "0.0.0.0" を提供することです。
この問題に提案できる他の解決策はありますか?
いくつかの回答に続いて、詳しく説明しましょう。
- バインドするアダプターを選択する必要がある製品があるため、これが必要です。製品が実行されるネットワークまたはホストのセットアップを制御する方法がないため、可能な限り仮定を少なくして、可能な限り堅牢なソリューションが必要です。
- これは製品の一部であるため、コードで行う必要があります。
@Chris Upchurch: これにより、google.com が稼働していること (通常は問題ありません) と、ping を許可するためにインストールされている可能性のあるパーソナル ファイアウォールに依存するようになります。
@Till: Steve Moon が言ったように、アダプターのアドレスに依存することは、内部ネットワークのセットアップで多くの仮定を行うため、一種の危険です。
@Steve Moon:ルーティングテーブルを見るのは良い考えのように思えますが、ルーティングロジックを自分で適用する代わりに、上記のように「GetBestInterface」を使用しようとしています。それが何をすべきかは、あなたの答えで概説したとおりだと思いますが、よくわかりません。私が独自の「ルーティング ロジック」を実装することに消極的である理由は、より「筋金入りの」ネットワーク関係者によって作成およびテストされたライブラリ/API を使用する場合よりも、間違っている可能性が高いからです。
windows-vista - GetIfEntryとnetshの間のMTUの不一致
私は、TCPの代わりに、信頼性の高いコネクション型通信を提供する、UDP上で実行される疑似トランスポート層ソフトウェアに取り組んでいます。ネットワーク効率を最大化するために、初期化時に「最良の」ネットワークアダプタのMTUを照会します。
オンラインで検索すると、次のnetshコマンドを使用して、コマンドプロンプト(C ++ APIではない)から同じ値を照会できることがわかりました。
厄介な問題は、row.dwMtuが1500に設定されている場合でも、送信側のラップトップでネットワークトラフィックをスヌーピングすると、パケットが1300バイトのパケットに断片化されていることを示します。netshは、MTUが1300であることも報告しています。
明らかに、netshコマンドによって報告された値は実際に使用された値です。netshと同じ値を取得するために呼び出すことができるAPIを知っている人はいますか?
python - Python で Win32 IPHelper API を使用する際の問題
ネットワーク パラメータを取得するための Python モジュールを作成しようとしています。私は ctypes を使用していますが、いくつか問題があります。
関数 __getInterfaces_win2k() は python 2.5 および 2.6 で動作しますが、python 2.7 では動作しません (python.exe の 0x1e001759 で未処理の例外: 0xC0000005: 場所 0x00000010 を読み取るアクセス違反)。
関数 __getInterfaces_win_after_win2k() は、どのバージョンの Python でも機能しません (同じエラー)。
場合によっては、プログラムがクラッシュする前に必要な情報を出力します。ほぼすべての値を C のプログラムと比較してみました。すべて正常です。どんな助けでも大歓迎です。
windows - IPアドレスで構成されたネットワークアダプターかどうか? vc++/Windows api を使用して確認する方法は?
こんにちは、IPアドレスで構成されたネットワークアダプターについて、またはdhcpまたは手動を使用して構成されていないネットワークアダプターについて共有できますか。vc++/Windows api を使用して確認する方法は?
interface - アダプタとネットワークインターフェイスの違いは何ですか?
IPヘルパー関数に関するMSDNドキュメントを理解するのに苦労しています。アダプタとネットワークインターフェイスの違いは何ですか?
delphi - 新しい TCP 接続を検出する方法 Windows API による GetExtendedTCpTable
ローカル pc のアクティブな tcp/udp 接続を監視するためのアプリを作成しました。現在、接続のリストは静的ですが、動的にするにはどうすればよいですか? タイマー イベントを使用しようとしましたが、GetExtendedTCPTable は接続の完全なリストを返します。新しい接続を listView に追加したいだけです。同じことをするAPIはありますか?または、すべての接続を手動で追跡し、それらを比較してから、表示に追加する必要がありますか?
前もって感謝します
c# - 接続帯域幅統計ごとの取得
TCPView でできることと同様に、プロセスごとのネットワーク使用統計を決定する必要があります。
例 http://img513.imageshack.us/img513/861/6601f15814544055a590e26.png
したがって、この質問またはこの質問の複製を投稿したことで私を撃つ前に、どちらも私が実際にこれを行うのに役立つ完全な回答を持っていないことを指摘したいと思います.
私は調査を行ってきましたが、アクティブな接続とそれに関連するプロセスをリストする方法は明らかに多くあります。これは、 netstat またはIpHlpAPI.dllのような他の Windows API を使用する場合です。
今、私が行ったことから、私はあまり見つけられませんでした-これらのあいまいな用語を除いて: GetPerTcpConnectionEStatsおよびGetPerTcp6ConnectionEStats。おそらく、TCP over IPv4 および IPv6 用です。今、私が読んでいた場所では、私がする必要があることを実行できると思われます。ただし、それでもUDPは除外されます。また、これらは、TCPViewer が動作する XP システムでも利用できません。
私はそれらをTCPに使用することに満足していますが、問題は、C#からそれらを使用する方法の例を見つけることができないようです.
要するに、すべては次のいくつかの質問に集約されると思います。
- TCPViewがどのようにそれを行うかを実際に知っている人はいますか?
- TCP に GetPerTcpConnectionEStats を使用するにはどうすればよいですか? それとも、私が提案していることを達成することさえできますか?
- UDP で機能する別の既知の代替手段はありますか?
これの要点は、プロセス自体の独立した帯域幅の使用状況を確認することです。システム帯域幅の合計使用量を計算しません。
すべての回答に感謝します。
vb.net - GetBestInterface の管理された代替?
私は C (またはその他のアンマネージ言語) でのプログラミングの経験はまったくありませんが、.NET アプリケーションで IP Helper APIのGetBestInterface関数を使用したいと考えています。P/invoke 呼び出しを使用してネイティブ メソッドを呼び出す方法を理解しようとしましたが、理解できないことがたくさんあります (マネージド コードの型がアンマネージド型にどのようにマップされるかなど)。
ほぼ同じことを行う System.Net 名前空間のどこかに隠された代替機能はありますか? または、既存の基本クラスをいくつかの魔法と組み合わせて使用して、独自の代替手段を作成できますか? それが基本的に私には見えるものだからです:魔法. 私が知る限り、メソッドがどのように機能するかについての実際の説明はありません...
編集
System.Net.Sockets.Socket
これで非常に役立つと思われるクラスの LocalEndPoint プロパティを発見しました。私の理解では、それは私に代わって最適なインターフェイスの選択を行い、ローカル エンドポイントに対応する NIC を取得するだけで済みます。
winapi - デフォルト ゲートウェイの変更時のセグメンテーション エラー
Qt4 で、ネットワーク アダプターのパラメーターを変更する単純なアプリケーションを作成しました。そのために、次のsetInterfaceParams
ように実装された というスロットがあります。
slot に接続されているボタンをクリックするとsetInterfaceParams
、セグメンテーション違反が発生します。method01 にコメントしても何も起こりませんが、method02 を使用すると何かが起こります。この関数を単純な C++ アプリケーションで試してみたところ、問題なく動作し、Windows XP SP3 でテストしました。