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と関連する良く見られている質問

Q元のipアドレス、サブネットマスクを確認したい。

’次のipアドレスを使う’にipアドレス、サブネットマスクを入力していたが、自動的に取得に換えた為、ipアドレス、サブネットマスクがきえました。消えたipアドレス、サブネットマスクを確認する方法はありますか。

Aベストアンサー

C:\System Volume Informationの中にレジストリのバックアップがあるので、そこから情報を知ることもできます。
ただし、アクセスするのも、レジストリファイルから情報を取り出すのもちょっとした技術が必要です。

復元ポイント作ってたら、そこから戻すことも可能です。

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.

QプライベートIPアドレスとサブネットマスク

現在、4月の初級シスアドの試験に向けて勉強中です。
そこで、IPアドレスのことについて一つはっきり理解できないことが出てきたので、誰か教えて下さい。

IPアドレスには、全世界で一意のグローバルIPアドレスと、LAN内のみで通用するプライベートIPアドレスがある。

これは理解できます。だけど分からないのは、グローバルIPアドレスとプライベートIPアドレスとサブネットマスクの関係です。

僕は、今のところ、こう理解しています。
グローバルIPアドレスにサブネットマスクをかけることによって、プライベートIPアドレスを作り出すことが出来る。

僕の理解、これで合ってますか?

Aベストアンサー

グローバルIPアドレスにサブネットマスクをかけても、グローバルIPアドレスのままである例があるので、これは正しくないかと。
サブネットマスクは、クラスに関係なくネットワークアドレスを指定するもので、グローバルとかプライベートとかと、直行する概念です。

参考URL:http://www.wakhok.ac.jp/~kanayama/summer/02/site/node34.html

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サフ...続きを読む

QIPアドレス・サブネットマスクの設定方法

モデム(ヤフー)→ルータ(NEC)→有線→デスクトップ(WindosMe)
モデム(ヤフー)→ルータ(NEC)→無線→ノートパソコン(WindosXP)
でインターネットをしていましたが、雷が近所に落ちてから
インターネットに接続できなくなってしまいました。

症状は、IPアドレス・サブネットマスクがどちらのパソコンも
0.0.0.0となっています。

ヤフーの場合、IPアドレス・サブネットマスクが固有のものと聞きました。
教えていただきたい事は、
ヤフーのIPアドレス・サブネットマスクと
Me、XPそれぞれでの設定方法です。
よろしくお願い致します。

Aベストアンサー

うちもヤフーで、雷があった時(近所に落ちたかどうかは分からないがすごい雷でした。)ヤフーインターネットが使えなくなりました。原因は、うちはマンションなので共同機器の故障及び自宅にあるルータの交換でした。ですから、ヤフーに連絡して交換してもらうしかありません。ちなみに無料でしたが、その間に電話もインターネットも使えなかった期間も通常通り基本料金請求でした。。(文句言うのも面倒なんで。。修理代請求されなかったのでいいかと。)

ですから、ヤフーに連絡しましょう。

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アドレスのサブネットマスクの設定について教えてください。

サブネットマスクの設定について教えてください。

【ネットワーク情報】
・自分のホストがいるネットワーク(A)
 10.4.0.0 255.255.0.0 (10.4.0.0/16)

・L3スイッチ
 ネットワーク(A)は、VLAN40に属しています。
 VLAN40 は、10.4.0.0/16 がIPアドレスの範囲です。
 特にVLAN40 内ではアクセスコントロールはしていません。

上記ネットワーク上に、サーバーを立てました。
IPアドレスは、 10.4.255.30 で、MACアドレスにてDHCPサーバの予約で
IPを配布しています。

念のため、サーバーにも手動でIPアドレスを振ろうと思っているのですが、
この場合のサブネットマスクは 255.255.255.0 で良いのでしょうか?
それとも 255.255.0.0 にした方がよいのでしょうか?

255.255.255.0でサブネットマスクを設定しても、255.255.0.0 からアクセス出来る
ような気がするのですが、どうなのでしょうか。

ご教授くださいますようお願い致します。

サブネットマスクの設定について教えてください。

【ネットワーク情報】
・自分のホストがいるネットワーク(A)
 10.4.0.0 255.255.0.0 (10.4.0.0/16)

・L3スイッチ
 ネットワーク(A)は、VLAN40に属しています。
 VLAN40 は、10.4.0.0/16 がIPアドレスの範囲です。
 特にVLAN40 内ではアクセスコントロールはしていません。

上記ネットワーク上に、サーバーを立てました。
IPアドレスは、 10.4.255.30 で、MACアドレスにてDHCPサーバの予約で
IPを配布しています。

念のため、サー...続きを読む

Aベストアンサー

>念のため、サーバーにも手動でIPアドレスを振ろうと思っているのですが、
>この場合のサブネットマスクは 255.255.255.0 で良いのでしょうか?
>それとも 255.255.0.0 にした方がよいのでしょうか?

サブネットマスクは、255.255.0.0にしたほうが良いでしょう。質問の後に書かれているように、255.255.0.0側からは、255.255.255.0側はアクセスできます。しかしながら、255.255.255.0側から255.255.0.0側からアクセスできません。

VLANの場合に難しいのは、アクセスコントロールの範囲をどのようにすればよいのか?

これは、貴方の会社のセキュリティポリシーに拠るため、ここでは書きません。基本的には、クライアント-サーバシステムの場合には、上位アドレスから下位アドレスはアクセスできますが、下位アドレスから上位アドレスはアクセスできないということなのです。

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)だけを...続きを読む

QIPアドレスとサブネットマスクがわかりません

WindowsXPでIPアドレスとサブネットマスクを知りたいのですが、どこに載っているのかわかりません。どなたか教えてもらえませんか?

Aベストアンサー

これって、自分の使っているPCのIPアドレスとネットマスクを知りたいって事ですよね。IPアドレスとは何か?とかサブネットマスクとは何か?問うことを知りたいと言うのではないですよね。
でしたら、一番簡単なのは、マイネットワークをクリック→左上にあるネットワーク接続を表示をクリック→ローカルエリア接続をクリック→すると、左下に詳細とありますからそこに出てきます。もしかすると隠れている可能性がありますから、その場合は詳細の右にあるした矢印をクリックすると出てきます。

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

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

Aベストアンサー

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

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


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング