C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: inet_addrについて


(過去ログ 50 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■26960 / inTopicNo.1)  inet_addrについて
  
□投稿者/ うに (1回)-(2008/10/23(Thu) 21:52:40)

分類:[VB.NET/VB2005 以降] 

はじめまして。

プログラミングを始めて2ヶ月程度です。
今までインターネットで調べてやってきましたが
ついに詰まってしまいました。

WinXP Pro SP3
VB2008 Express Edition SP1 にて

・PCがネットワークに接続されているかどうかを調べる
・ある範囲の中で使用されていないIPアドレスを調べる

そんなツールを作成しようとしています。


10進数表現されたIPアドレスをバイナリ値に変換するところで、
inet_addrを使ったところ
戻り値が16777216になってしまいます。

フォームアプリケーションの製作ですが
IPアドレスを変換する部分だけコンソールで書いてみたところ
やはり状況は変わりません

以下のコードに何か問題があるのでしょうか?



Public Declare Auto Function inet_addr Lib "wsock32.dll" (ByVal HostName As String) As Integer

Sub Main()
    Dim dwAddress As Integer
    dwAddress = inet_addr("192.168.10.251")
    Console.Write(dwAddress)
End Sub



御教授のほどよろしくお願いします。

引用返信 編集キー/
■26963 / inTopicNo.2)  Re[1]: inet_addrについて
□投稿者/ も (52回)-(2008/10/23(Thu) 22:41:35)
手元にVBがないのでC#で試してみたのですが,別に問題なさそうです.
using System;
using System.Runtime.InteropServices;

namespace ConsoleApplication1 {
class Program {
[DllImport("wsock32.dll", ExactSpelling = true)]
static extern int inet_addr(string cp);
static void Main(string[] args) {
int x = inet_addr("192.168.10.251");
Console.WriteLine(x); // -83187520
Console.Read();
}
}
}

# なんか.net frameworkが提供するクラスで抑えていたほうが後々楽そうですが
引用返信 編集キー/
■26968 / inTopicNo.3)  Re[2]: inet_addrについて
□投稿者/ Hongliang (309回)-(2008/10/24(Fri) 06:28:07)
> Public Declare Auto Function inet_addr Lib "wsock32.dll" (ByVal HostName As String) As Integer

inet_addr は引数が const char* cp と定義されてますが、Declare に Auto 使った場合 NT 系 OS では String が TCHAR* でマーシャリングされてしまいます。
引用返信 編集キー/
■27024 / inTopicNo.4)  Re[3]: inet_addrについて
□投稿者/ うに (3回)-(2008/10/25(Sat) 02:24:06)

も さん
わざわざ試していただきありがとうございます

># なんか.net frameworkが提供するクラスで抑えていたほうが後々楽そうですが

・PCがネットワークに接続されているかどうかを調べる
は可能なのでしょうか・・?



Hongliang さん
>inet_addr は引数が const char* cp と定義されてますが、Declare に Auto 使った場合 NT 系 OS では String が TCHAR* でマーシャリングされてしまいます。

無知故にあまり理解はできていませんが
Autoをなくしたところちゃんと戻り値が返ってきました。

ありがとうございました。
引用返信 編集キー/
■27025 / inTopicNo.5)  Re[4]: inet_addrについて
□投稿者/ オショウ (44回)-(2008/10/25(Sat) 06:41:04)
> ># なんか.net frameworkが提供するクラスで抑えていたほうが後々楽そうですが
>
> ・PCがネットワークに接続されているかどうかを調べる
> は可能なのでしょうか・・?

  http://dobon.net/vb/dotnet/internet/index.html

  ここのその他にあります。
  また、Socketクラスを使いましょう!
  そのURLにいろいろ例があります。

以上。
引用返信 編集キー/
■27238 / inTopicNo.6)  Re[5]: inet_addrについて
□投稿者/ うに (4回)-(2008/10/30(Thu) 22:11:51)

他の用事が忙しくてなかなか弄れなかったです。

本日、PingクラスとPingReplyクラスを使用して
目的が達成できてしまいました。

単純な勘違いによりAPIを使わないとできないと思い込んでいました。


お世話になりました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -