• ベストアンサー

ネットワーク上のPCのIPとホスト名を取得

早速ですが、 ネットワーク上のPCのIPとホスト名を取得したいのですが、APIかコマンドから取得できるでしょうか? (できればAPI) 1.IPからホスト名取得 2.ホスト名からIPアドレスの取得 [環境] windows2000 VB6.0 すみません。教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.1

'***共通*** Private Const WS_VERSION_REQD = &H101 Private Const WSADescription_Len = 256 Private Const WSASYS_Status_Len = 128 Private Type WSADATA wVersion As Integer wHighVersion As Integer szDescription(0 To WSADescription_Len) As Byte szSystemStatus(0 To WSASYS_Status_Len) As Byte iMaxSockets As Integer iMaxUdpDg As Integer lpszVendorInfo As Long End Type Private Type HOSTENT hName As Long hAliases As Long hAddrType As Integer hLength As Integer hAddrList As Long End Type Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired&, lpWSADATA As WSADATA) As Long Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource&, ByVal cbCopy&) '***ホスト名→IP*** Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal HostName$) As Long '***IP→ホスト名*** Private Declare Function gethostbyaddr Lib "wsock32.dll" (addr As Long, ByVal lngLen As Long, ByVal lngType As Long) As Long 'ホスト名→IPの例 Dim WSAD As WSADATA Dim lRet As Integer Dim hostent_addr As Long Dim host As HOSTENT Dim hostip_addr As Long Dim temp_ip_address() As Byte Dim i As Integer Dim ip_address As String 'Winsockの使用を開始 lRet = WSAStartup(WS_VERSION_REQD, WSAD) hostent_addr = gethostbyname("ホスト名") If hostent_addr = 0 Then '失敗 End If RtlMoveMemory host, hostent_addr, LenB(host) RtlMoveMemory hostip_addr, host.hAddrList, 4 ReDim temp_ip_address(1 To host.hLength) RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength For i = 1 To host.hLength ip_address = ip_address & temp_ip_address(i) & "." Next ip_address = Mid$(ip_address, 1, Len(ip_address) - 1) 'ホスト名ゲット Text.Text = ip_address 'Winsockの使用を終了 lRet = WSACleanup() ホスト名→IPは以下のURLを参照 http://vbvbvb.com/jp/gtips/0851/ggethostbyaddr.html

poposan
質問者

お礼

ありがとうございます。 大変助かりました。

その他の回答 (1)

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.2

#1です。 URLのところの記述は、IP→ホスト名の誤りです。

関連するQ&A

  • ホスト名、IPアドレス、MACアドレスの取得方法について

    1.ネットワーク上の全てのPCのホスト名が分かっている状態でIPアドレスorMACアドレスを表示させるコマンドやツールはないでしょうか? 2.ネットワーク上の全てのPCのホスト名、MACアドレスが分からない状態で、IPアドレスを固定でふる方法はないでしょうか? 目的としては、ネットワーク上の全てのPCにIPアドレスとホスト名を自動で設定するバッチを作りたいと思っています。現在MACアドレスが分かった状態でのIPアドレス、ホスト名の自動設定はできています。

  • クライアントのホスト名取得方法

    自社内のクライアントコンピュータのホスト名を取得するコマンドまたはプログラミング(VB)を教えてください。よく巷にあるツールを使うとIPアドレスから生死確認、ホスト名取得がありますがあれがどのようにやっているのかわかりません。生死確認はpingだと思うのですが、ホスト名をどのようにして取得しているかを知りたいです。自社の出勤管理にコンピュータ名(ホスト名)の一覧を取得したいと考えています。対象コンピュータはWindowsで、管理コンピュータもWindowsです。よろしくお願いします。

  • IPアドレスからホスト名を取得するには?

    タイトルの通りです。 IPアドレスは分かっているのですが、出来れば、そこからホスト名を取得したいのです。 欲を言えば簡単に一撃で分かる様なものがあれば非常にうれしいのですが。。。 VBのバージョンは6です。 以前、フリーソフトで IPlookup と言うものを見つけました。(IPアドレス←→ホスト名の相互変換ソフト) これと同じ機能が自作のソフトウェアの中に組み込めればなぁ、と安易に考えています。 簡単には出来なくても、こう言うようにすれば出来る等でもありましたら、 是非ご教授頂ければと思います。 よろしくお願い致します。

  • Excel VBAでホスト名取得

    タイトルにあるようにExcel VBAでホスト名の取得を行いたいと思っています。 処理としては、あらかじめセルに入力してあるIPアドレスを変数に入れて、そこからホスト名を取得して隣のセルに入力する。 という処理を行いたいのですが、変数に入れて隣のセルにという部分はわかるのですが、ホスト名取得の方法がわかりません。 VBAではできないのでしょうか? 教えて下さい。 webサイトでIPアドレスを入れるとホスト名を取得できる下記のようなサービスをVBA上で行いたいのですが。 http://www.cman.jp/network/support/ip.html http://www.kagoshima-it.go.jp/~nagayosi/php.html よろしくお願いします。

  • ホスト名が認識できない

    Solaris+Cです。 対向装置(VBで作成)と送受信するために、ソケットを使用している以下のようなコードがあります。 iRet = waitAccept( giSocket, &sockAddr, &iSockAddrLen, &giAccept); /* iRetがエラーの場合のエラー処理(割愛)*/ /* IPアドレスからホスト名取得 */ hentpName = gethostbyaddr(   (char *)&(sockAddr.sin_addr), 4, AF_INET); ここで、waitAcceptは正常に抜けてくるのですが、gethostbyaddrが常にNULLを返してきます。 gethostbyaddrでホスト名を取得させるためには、どこかに何らかの設定が必要なのでしょうか? よろしくお願いします。

  • リモートコンピュータのPC名を取得したいのですが・・・・。

    すみません。どなたかご存知でしたら教えてください。 私はVBの初心者です。VB2005を使用しています。 IPアドレスを指定し、そのPCのコンピュータ名を取得したいと考えています。色々調べたところ、APIを呼び出さなければいけないところまではわかったのですが、その先がなかなか判明しません。 Myクラスを使うとローカルPC名は簡単に取得できるのですが、 リモートとなると、なかなかどのサイトにも乗っていません。 リモートPCはメールサーバや、WEBサーバではなく、ただのクライアントなので、DNS引きの取得方法では取得できないようです。 すみませんが、困っています。 よろしくお願いいたします。

  • IPアドレスではなく、ホスト名で接続?

    資料などは無く、立ち話で聞いた話の中で分からないことを聞いているので、質問が曖昧であったり、意味が通じなかったりするかもしれませんが、ご容赦ください。 職場のネットワーク改善工事に伴い、IPアドレスではなくホスト名でネットワークに接続するようになるそうです。 「ホスト名で接続できない機器の確認を行うように」とも言われています。 現在はIPアドレスを自動取得する設定となっていますが、それをホスト名で接続するとはどのような意味でしょうか?また、その方法はどのように行うのでしょうか? OSはWindows XPです。 ネットで調べている最中ですが、目的の答えが得られそうにないので、そもそもの勘違いがあると思っています。 よろしくお願いします。

  • javaでドメイン名を取得したい

    お世話になります。 javaでネットワークプログラムを書いているのですがドメイン名はどのようにしたら取得できるのでしょうか? URLからホスト名の文字列を取得した後、ドメイン部分を取り出したいのですが、URLのホスト名は必ずしもホスト名ではなく、IPアドレスだったり、ドメイン名だったりします。(このサイトもホスト名ではなくドメイン名になっていますよね) IPアドレスは無視するとして、ホスト名またはドメイン名が指定された時にドメイン名を取得したいのです。 例)www.yahoo.co.jp → yahoo.co.jp okwave.jp → okwave.jp 何か良いAPIが無いものかと探してみましたが見つけられませんでした。 トップレベル、セカンドレベルドメインのリストを取得できるならそこからドメイン名を導き出すことができるのでリストの取得方法でも構いません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • IPから ホスト名など 割り出すには?

    目的のパソコンが電源が入ってるかはPING ではIPから ホスト名など 割り出すには? どんなコマンドを使ったらいいでしょうか?

  • ホスト名の変更

    ホスト名とIPアドレスを、簡単に変える必要があるのですが、 IPアドレスはnetshで変更できる事がわかりましたが、 ホスト名の変更がわかりません。 コマンドでも、Cで書いてもかまいませんので何か方法はないでしょうか?

専門家に質問してみよう