InetPtonW

InetPton 関数は、標準テキスト表現形式の IPv4 または IPv6 インターネットネットワークアドレスを数値バイナリ形式に変換する。この関数の ANSI 版は inet_pton である。(InetPtonW)

InetPtonW Family, pszAddrString, pAddrBuf

Family : [int] アドレスファミリ。アドレスファミリとして指定可能な値は Ws2def.h ヘッダファイルに定義されている。なお、Ws2def.h ヘッダファイルは Winsock2.h に自動的にインクルードされるため、直接使用すべきではない。AF_ アドレスファミリ定数と PF_ プロトコルファミリ定数の値は同一 (たとえば AF_INET と PF_INET) なので、どちらの定数を使ってもよい。現在サポートされている値は AF_INET と AF_INET6 である。
pszAddrString : [wstr] 数値バイナリ形式に変換する IP アドレスのテキスト表現を格納した NULL 終端文字列へのポインタ。Family パラメータが AF_INET の場合、pszAddrString パラメータは標準のドット区切り十進表記による IPv4 アドレスのテキスト表現を指さなければならない。Family パラメータが AF_INET6 の場合、pszAddrString パラメータは標準表記による IPv6 アドレスのテキスト表現を指さなければならない。
pAddrBuf : [intptr] IP アドレスの数値バイナリ表現を格納するバッファへのポインタ。IP アドレスはネットワークバイトオーダーで返される。Family パラメータが AF_INET の場合、このバッファは IN_ADDR 構造体を格納できる大きさでなければならない。Family パラメータが AF_INET6 の場合、このバッファは IN6_ADDR 構造体を格納できる大きさでなければならない。

(プラグイン / モジュール : ws2_32.dll)

解説

InetPton 関数は、標準テキスト表現形式の IPv4 または IPv6
インターネットネットワークアドレスを数値バイナリ形式に変換する。この関数の ANSI 版は inet_pton
である。(InetPtonW)

[戻り値]
エラーがない場合、InetPton 関数は値 1 を返し、pAddrBuf
パラメータが指すバッファにはネットワークバイトオーダーのバイナリ数値 IP アドレスが格納される。pAddrBuf パラメータが有効な
IPv4 ドット区切り十進表記文字列や有効な IPv6 アドレス文字列でない文字列を指していた場合、InetPton 関数は値 0
を返す。そうでない場合は -1 が返され、WSAGetLastError
を呼び出すことで拡張エラー情報を取得できる。関数がエラーになった場合、WSAGetLastError
が返す拡張エラーコードは次のいずれかになる。
(以下省略)

[備考]
InetPton 関数は Windows Vista 以降でサポートされる。InetPton
関数は、標準テキスト表現形式のインターネットネットワークアドレスを数値バイナリ形式に変換するプロトコル非依存な機能を提供する。InetPton
関数は、pszAddrString パラメータが指すインターネットアドレスのテキスト表現を取り、pAddrBuf パラメータに数値バイナリ
IP アドレスへのポインタを返す。inet_addr 関数が IPv4 アドレス文字列のみを扱うのに対し、InetPton 関数は
IPv4 と IPv6 のどちらのアドレス文字列も扱える。この関数の ANSI 版は RFC 2553 で定義された inet_pton
である。詳しくは IETF の Web サイトにある RFC 2553 を参照。InetPton 関数は、IP
アドレスを表すテキスト文字列を数値バイナリ IP アドレスに変換するのに Windows Sockets DLL
をロードする必要がない。Family パラメータに AF_INET を指定した場合、pszAddrString パラメータは
"192.168.16.0" のようなドット区切り十進表記の IPv4 アドレスのテキスト文字列を指さなければならない。Family
パラメータに AF_INET6 を指定した場合、pszAddrString パラメータはインターネット標準形式の IPv6
アドレスのテキスト文字列を指さなければならない。基本的な文字列表現はコロンで区切られた 8 個の 16
進数から成る。連続するゼロの列はダブルコロンに置き換えてもよい。IPv6 アドレスの文字列表現には、ダブルコロンは 1
つしか現れてはならない。アドレスが IPv4 互換アドレスの場合、末尾 32 ビットを IPv4
形式のドット区切り表記で表現してもよい。UNICODE または _UNICODE が定義されている場合、InetPton は
Unicode 版の InetPtonW として定義される。pszAddrString パラメータは PCWSTR
データ型として定義される。UNICODE または _UNICODE が定義されていない場合、InetPton は ANSI 版の
InetPtonA として定義される。この関数の ANSI 版は常に inet_pton としても定義される。pszAddrString
パラメータは PCSTR データ型として定義される。IN_ADDR 構造体は Inaddr.h
ヘッダファイルで定義されている。IN6_ADDR 構造体は In6addr.h ヘッダファイルで定義されている。Windows Vista
以降では、RtlIpv4StringToAddress および RtlIpv4StringToAddressEx
関数を使って、インターネット標準のドット区切り十進表記の IPv4 アドレステキスト表現を IN_ADDR
構造体として表現された数値バイナリアドレスに変換できる。Windows Vista 以降では、RtlIpv6StringToAddress
および RtlIpv6StringToAddressEx 関数を使って、IPv6 アドレスの文字列表現を IN6_ADDR
構造体として表現された数値バイナリ IPv6 アドレスに変換できる。RtlIpv6StringToAddressEx 関数は、スコープ
ID やポートを含む標準表記の IPv6 アドレス文字列表現も数値バイナリ形式に変換できるため、より柔軟である。Windows 8.1
および Windows Server 2012 R2: InetPtonW 関数は、Windows 8.1、Windows Server
2012 R2 以降の Windows ストアアプリでサポートされる。

情報

プラグイン / モジュールws2_32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ws2_32_gen2.hs