Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ inet_addr(3N) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

gethostbyname(3N)

getnetent(3N)

hosts(5)

networks(5)

INET(3N)  —  NEWS-OS Programmer’s Manual

名称

inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof  −  インターネットアドレス操作ルーチン

形式

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

unsigned long inet_addr(cp)
char ∗cp;

unsigned long inet_network(cp)
char ∗cp;

char ∗inet_ntoa(in)
struct in_addr in;

struct in_addr inet_makeaddr(net, lna)
int net, lna;

int inet_lnaof(in)
struct in_addr in;

int inet_netof(in)
struct in_addr in;

解説

inet_addr と inet_network は、 それぞれインターネット標準の “.” 記法によって表される文字列を 解釈して、 各々、 その使用に適合するインターネットアドレスとインターネット番号を 返します。 inet_ntoa ルーチンは、 インターネットアドレスを取り、“.” 記法でアドレスを 表すASCII文字列を 返します。 inet_makeaddr はインターネットネットワーク番号とローカルネットワークアドレスを 取り、 インターネットアドレスを 作成します。 inet_netof と inet_lnaof のルーチンは、 インターネットのホストアドレスを 分解し、 ネットワーク番号とローカルネットワークアドレス部分を それぞれ返します。

インターネットアドレスはすべて、 ネットワークバイトオーダ(左から右のバイト順)に返されます。 ネットワーク番号とローカルアドレス部分はすべて、 マシン依存形式の整数値として返されます。

インターネットアドレス

 “.” 記法を 使って指定される値は、 次の形式を 取ります。

a.b.c.d
a.b.c
a.b
a

4つの部分が指定された場合には、 それぞれ 1バイトのデータとして解釈され、 左から右へ、 インターネットアドレスの 4バイトに割り付けられます。

3つのアドレスが指定された場合には、 最後の部分が 16ビットとして解釈され、 ネットワークアドレスの右端の 2バイトに置かれます。 これによって、 “128.net.host” のように、 3つの部分のアドレス形式で、 Bクラスのネットワークアドレスを 指定できるので便利です。

2つのアドレスが指定された場合には、 最後の部分が 24ビットとして解釈され、 ネットワークアドレスの右端の 3バイトに置かれます。 これによって、 “net.host” のように、 2つの部分のアドレス形式で、 Aクラスのネットワークアドレスを 指定できるので便利です。

1つのアドレスだけ指定された場合には、 バイト再配置が行われることなく、 この値は直接ネットワークアドレスに記憶されます。

“.” 記法を 使った “ 部分 ” として与えられた数字はすべて、 C言語中で 10進数、 8進数、 または 16進数として表現できます(すなわち、 先頭に 0x または 0X があれば 16進数、 0 が先頭なら 8進数、 それ以外は 10進数として数字が扱われます)。

関連事項

gethostbyname(3N), getnetent(3N), hosts(5), networks(5)

診断

誤った記法の要求には、 inet_addr と inet_network が −1 を 返します。

バグ

ホストのバイトオーダとネットワークのバイトオーダの問題は、 混乱をひき起こします。 Cクラスのネットワークアドレスについても、 Bクラスや Aクラスに類似した簡単な指定方法が必要です。 inet_ntoa が返す文字列は、 静的メモリ領域にあります。
inet_addrはin_addr の構造体を 返されるべきです。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026