getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent − 네트웍 엔트리를 가져온다.
#include <netdb.h>
struct netent *getnetent(void);
struct netent *getnetbyname(const char *name);
struct netent *getnetbyaddr(long net, int type);
void setnetent(int stayopen);
void endnetent(void);
getnetent() 함수는 파일 /etc/networks 에서 다음 라인을 읽고 그 라인에서 뽑아낸 필드들을 포함하는 netent 구조체를 반환한다. /etc/networks 파일은 필요하다면 열려진다.
getnetbyname() 함수는 /etc/networks에서 네트웍 name과 일치하는 라인에 해당하는 netent 구조체를 반환한다.
getnetbyaddr() 함수는 타입 type의 네트웍 번호 net과 일치하는 라인에 해당하는 netent 구조체를 반환한다.
setnetent() 함수는 /etc/networks 파일을 열고 되 감는다. 만일 stayopen 이 참(1)이라면, 파일은 getnetbyname() 과 getnetbyaddr() 호출시 닫혀지지 않을 것이다.
endservent() 함수는 /etc/networks을 닫는다.
netent 구조체는 다음처럼 <netdb.h>에 정의되어 있다.:
struct netent {
char |
|||
*n_name; |
/* 공식적인 네트웍 이름 */ |
||
char |
|||
**n_aliases; |
/* 별칭 이름 */ |
||
int |
|||
n_addrtype; |
/* net 주소 타입 */ |
||
unsigned long int n_net; |
/* 네트웍 번호 */ |
}
netent 구조체 멤버는:
n_name |
네트웍의 공식적인 이름 |
n_aliases
네트웍을 위해 선택할수 있는 널로 종료된 리스트
n_addrtype
네트웍 번호의 타입; 항상 AF_INET.
n_net |
호스트 바이트 순서로 된 네트웍 번호. |
getnetent(), getnetbyname() 그리고 getnetbyaddr() 함수는 netent 구조체를 반환하거나, 만일 에러가 발생하거나 파일의 끝에 도착한다면 NULL 포인터를 반환한다.
/etc/networks 네트웍 데이터베이스 파일
BSD 4.3
getprotoent(3), getservent(3), networks(5)
RFC 1101
정강훈 <skyeyes AT soback DOT kornet DOT net>, 2001년 4월 30일