IPアドレスを取得するプログラムを作りたいのですが、
そのような関数はあるのでしょうか?
ご存知の方がいらしたら教えてください。
お願いします。

A 回答 (3件)

FormにWinSockコントロールを張りつけます。



自分のマシンのIPアドレスは
WinSock1.LocalIP
で取得できますし、相手先のIPアドレスは
WinSock1.RemoteHostIP
で取得できます。
    • good
    • 0

WinSockコントロールで取得するのが手っ取り早いです。


どうしてもコントロールを使用しないで、関数で行いたいというのであれば、GetAdaptersInfoでネットワークアダプタの情報を取得することができます。

こちらのURLに参考サンプルがあります。
http://www.vbvbvb.com/jp/gtips/index0151.html
0170 gGetAdaptersInfoIpAddressList.vbp
ネットワークアダプタのIPアドレスを列挙する

をDLしてみてください。

ちなみにぼくのつくるプログラムは、標準のコンポーネント(テキストボックス・ラベルなど)以外はあまり使用してません。
できるだけ軽いソフトを目指すのであれば、できるだけオリジナルの関数を作成しましょう。

参考URL:http://www.vbvbvb.com/jp/gtips/index0151.html
    • good
    • 0

Winsockコントロールで大丈夫だと思います

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIPアドレスの取得、パスの取得

初歩的な質問で申し訳ないのですが

Visual Basic5.0において

1.自分のコンピュータのIPアドレスの取得方法
2.実行中のexeファイル自身のパスの取得方法

がわかりません。どなたか教えてください。
できれば、例があるとうれしいです。

Aベストアンサー

Win32APIを使用します。
サンプルと例題(VBとC)が沢山ありますので、探してください。

http://tokyo.cool.ne.jp/masapico/api_index.html
http://tokyo.cool.ne.jp/masapico/sample_index.html

Win32APIが分からないなら、つぎのサイトを参照してください。
http://www.arcpit.co.jp/winapi/api_01/index.htm

では。

参考URL:http://tokyo.cool.ne.jp/masapico/api_index.html,http://tokyo.cool.ne.jp/masapico/sample_index.html,http://www.arcpit.co.

QIPアドレスを自動的に取得

いつもお世話になります。
VBScriptのご質問です。

ローカルネットワーク接続の設定でIPアドレスを固定から
自動的に取得に変更するという要件なのですが
ネットでは、Win32_NetworkAdapterConfigurationクラスの
EnableDHCPが紹介されていたので試したところ、
使用するIPが「192.164.nn.nn」から「0.0.0.0」と変わっただけで
自動的に取得するに変更はされていませんでした。

netshコマンドをコマンド実行で埋め込んでもいいのですが
出来れば、Win32_NetworkAdapterConfigurationを使う方法を
知りたいです。

アドバイス宜しくお願い致します。

Aベストアンサー

手動で自動取得設定にしたら DHCP からアドレスを受け取れるっていう大前提はクリアしていると勝手に期待しています。

まずはどんなスクリプトを書いたのか、提示できないのでしょうかね。
単純に DHCP を有効にするだけなのか、その他の設定も連動して変更するのかとか、要件があるでしょうに。

私のところでは DHCP 化するにあたり、以下の方針で行いました。
1. DHCP から受け取るもの
IP アドレス
ルーター(デフォルト ゲートウェイ) のアドレス
DNS サーバーのアドレス
DNS ドメイン名("この接続の DNSサフィックス" という項目)

2. 静的に設定するもの
DNSの検索サフィックス順 (社内に複数のドメインが存在するため)


スクリプトは以下のような流れ。
1. 無効化されていないアダプターのうち、DHCP が無効になっているアダプターのコレクションを取得する。
2. コレクションをループして 1つずつのアダプターに設定を以下の行う。
3. 静的に設定されていた DNS サフィックスを空にする。
4. 静的に設定されていた DNS サーバーのアドレスを空にする。
5. 3と4をアダプターごとに行う。
6. コレクション全体に対して DNS 検索サフィックス順を設定する。


Dim locatorObject, serviceObject
Set locatorObject = WScript.CreateObject("WbemScripting.SWbemLocator")
Set serviceObject = locatorObject.ConnectServer()
serviceObject.Security_.ImpersonationLevel = 3

Dim dnsServers, dnsSuffixSearchOrders
dnsServers = Array()
dnsSuffixSearchOrders = Array("hoge1.local", "hoge2.local", "hoge3.local")

Dim ipConfigItems, ipConfig
Set ipConfigItems = serviceObject.ExecQuery( _
          "SELECT * FROM Win32_NetworkAdapterConfiguration " & _
          "WHERE (IPEnabled = True) AND (DHCPEnabled = False)")
For Each ipConfig In ipConfigItems
  ipConfig.SetDNSDomain()
  ipConfig.SetDNSServerSearchOrder(dnsServers)
  ipConfig.EnableDHCP()
Next

Set ipConfigItems = serviceObject.Get("Win32_NetworkAdapterConfiguration")
ipConfigItems.SetDNSSuffixSearchOrder(dnsSuffixSearchOrders)

上記コードのインデントは全角空白なので、コピペしたら半角空白にすること。

手動で自動取得設定にしたら DHCP からアドレスを受け取れるっていう大前提はクリアしていると勝手に期待しています。

まずはどんなスクリプトを書いたのか、提示できないのでしょうかね。
単純に DHCP を有効にするだけなのか、その他の設定も連動して変更するのかとか、要件があるでしょうに。

私のところでは DHCP 化するにあたり、以下の方針で行いました。
1. DHCP から受け取るもの
IP アドレス
ルーター(デフォルト ゲートウェイ) のアドレス
DNS サーバーのアドレス
DNS ドメイン名("この接続の DNSサフ...続きを読む

QVBAからIPアドレスを取得する方法を教えてください。

現在使用しているPCは、NETやVBの開発環境を持って
いないため簡単にWinsockコントロールを使用した
IPアドレス取得ができません。
そのためAPIを使った昔の方法で対処したいと考えて
おり調べています。どなたかおわかりになる方がいまし
たら教えて頂けると助かります。

開発環境は、Excel2000 VBAです。
よろしくお願いします。

Aベストアンサー

APIではないんですけど、
WMIを使うとこんな感じ
Dim NetAdapters, nao, ip
Set NetAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where (IPEnabled = TRUE)")

for each nao in NetAdapters 'ネットワークアダプターは、複数ある場合がある
MsgBox nao.Caption 'ネットワークアダプター
for each ip in nao.IPAddress 'IPは、複数割り当てられている場合がある
MsgBox ip 'IPアドレス
next
next
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_networkadapterconfiguration.asp

APIではないんですけど、
WMIを使うとこんな感じ
Dim NetAdapters, nao, ip
Set NetAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where (IPEnabled = TRUE)")

for each nao in NetAdapters 'ネットワークアダプターは、複数ある場合がある
MsgBox nao.Caption 'ネットワークアダプター
for each ip in nao.IPAddress 'IPは、複数割り当てられている場合がある
MsgBox ip 'IPアドレス
next
next...続きを読む

QIPアドレスの取得方法

ルータにPCを接続してDMZゾーンに置き、wwwサーバとしてHPを公開しています。
OSはWindowsXP Proです。
そこでプログラムを作成し、接続毎にDHCPで変化するグローバルIPアドレスを取得したいのですがどのように取得すればよいのでしょうか?
開発環境はVB6.0です。
よろしくお願いします。

Aベストアンサー

そのプログラムはそのwwwサーバ上で動くと言う事で良いのでしょうか?

そうなのであれば、自分も似たような事をやりたかったので以下の方法で行いました。
但し前提条件として、
・ルータの設定及び状態の確認等はブラウザから行えることと、
・そこにグローバルIPが表示されること
です。

それを踏まえて以下の処理を行います。
・グローバルIPが表示されているルータのページ(HTMLファイル)を
 InetコントロールやBASP21等を使用し取得します。
・そのページの必要な部分(グローバルIP)だけを
 Instr関数やMid関数を駆使し、取得します。
 (ややこしい場合はInstr関数を多々使用しないだめかも。)

大抵のルータには上記前提条件に見合うページがあると思います。
また、それらのページはCGI等で生成されているっぽいので、
毎度HTML部分が変わり取得できないという事も無いと思います。
ですので、そのページのURLの特定と、
グローバルIPが設定されている箇所の解析ができれば、
後は上記処理で単純に出来ると思います。

そのプログラムはそのwwwサーバ上で動くと言う事で良いのでしょうか?

そうなのであれば、自分も似たような事をやりたかったので以下の方法で行いました。
但し前提条件として、
・ルータの設定及び状態の確認等はブラウザから行えることと、
・そこにグローバルIPが表示されること
です。

それを踏まえて以下の処理を行います。
・グローバルIPが表示されているルータのページ(HTMLファイル)を
 InetコントロールやBASP21等を使用し取得します。
・そのページの必要な部分(グローバルIP)だけを...続きを読む

Q3次関数を作るプログラム

学校のレポートにあたり、VB.NETで3次関数の係数をテキストボックスに入力し、ボタンを押すとグラフを出力するプログラムを作ることになりました。
フォーム設計は写真のような感じです。
座標軸を描くプログラムはできるのですが、3次方程式を表す曲線を描くプログラムがわかりません。
教えて頂けるとありがたいです。

Aベストアンサー

> 3次方程式を表す曲線を描くプログラムがわかりません。

X軸の各々のポイントのXの値に対応するYを3次関数により求めて、対応する(X,Y)座標に点を描いていけば、その点の連なりが曲線になります。


このカテゴリの人気Q&Aランキング

おすすめ情報