C++ inet_pton, inet_ntop 関数
2022-02-19 09:48:45
-
ヘッダーファイル
ウィンドウズの下で
#include <WS2tcpip.h>
linuxの場合。
#include <sys/socket.h>
#include <netinet/in.h>
#include<arpa/inet.h> -
inet_pton関数
ドット付き10進数文字列をネットワークバイトオーダーの2進数値に変換します。この関数は、IPv4アドレスとIPv6アドレスの両方を扱える。
第一引数には AF_INET または AF_INET6 を指定することができる。
第2パラメータは、ドット付き10進文字列:へのポインタである。
第3引数は、ネットワークのバイトオーダーを変換したバイナリ値へのポインタである。 -
inet_ntop関数
inet_pton関数とは逆に、inet_ntop関数はネットワークのバイトオーダーの2進数値をドット付き10進数文字列に変換します。
第一引数には AF_INET または AF_INET6 を指定する。
第2パラメータは、ネットワークバイトオーダーのバイナリ値へのポインタである。
第3パラメータはドット付き10進文字列に変換された文字列へのポインタです。
第4引数は、この関数が呼び出し元のバッファをオーバーフローさせた場合に備えて、ターゲットのサイズを指定するものである。 - サンプル
#include
#include
int main (void)
{
char IPdotdec[20]; // store the dotted decimal IP address
struct in_addr s; // IPv4 address structure
// input IP address
printf("Please input IP address: ");
scanf("%s", IPdotdec);
// Convert
inet_pton(AF_INET, IPdotdec, (void *)&s);
printf("inet_pton: 0x%x\n", s.s_addr); // note the byte order obtained
// reverse conversion
inet_ntop(AF_INET, (void *)&s, IPdotdec, 16);
printf("inet_ntop: %s\n", IPdotdec);
}
関連
-
c++ プログラミング プロンプトの関数定義はここでは許可されません。
-
エラー: ローカル変数 'res' に関連付けられたスタックメモリのアドレスが返された
-
C++-コラムフィッティングフィットシリンダー
-
VCのグローバル変数が*.objで既に定義されている場合の問題点
-
デバッグアサーションに失敗した」場合の解決策の一つ(着想)
-
error: label 'xxxxxxx' [-fpermissive] にジャンプします。
-
munmap_chunk():不正なポインタとSegmentation faultのバグを解決。
-
c++ 11 random ライブラリの簡単な使い方
-
[エラー]'cout' はこのスコープで宣言されていません。
-
c/c++の "undefined reference to "の解決法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C++ std::string は NULL で初期化できない、基本的な使い方
-
解決策:エラー:'cout'は型名ではありません。
-
C++ JSON ライブラリ jsoncpp 新 API の使用法 (CharReaderBuilder / StreamWriterBuilder)
-
error: '&' トークンの前にイニシャライザーがあるはずです。
-
const char*' から 'char*' への変換が無効です。
-
c++のエラー: エラーC2601: 'main' : ローカル関数定義が不正
-
C++プロジェクトのコンパイル時に再定義の多重定義問題を解決する
-
[C++】C++オーバーロード opeartor=非静的メンバ関数でなければならない?
-
C++ shared_ptr コンパイルエラー 'shared_ptr' がこのスコープで宣言されていない問題を修正しました。
-
デバッグエラー Assertion Failed 問題について