-
Notifications
You must be signed in to change notification settings - Fork 2
API kr_search (KO)
JoungKyun Kim edited this page Jul 13, 2016
·
4 revisions
kr_search - libkrisp database 에서 IP 에 대한 정보를 검색하여 반환 합니다.
#include <krisp.h>
typedef struct netinfos {
char err[1024]; // get error messages
char ip[256]; // given address
char icode[64]; // ISP code
char iname[64]; // ISP full name
char ccode[4]; // NATION code
char cname[64]; // NATION full name
ulong netmask; // network mask of range
ulong start; // start of range
ulong end; // end of range
bool verbose; // verbose option
} KRNET_API;
int kr_search (KRNET_API * isp, KR_API * db);
kr_search API는 주어진 ip 또는 호스트 이름에 대한 정보를 검색 합니다. kr_search API는 기본적으로, data file의 krisp table을 검색 합니다.
krisp tabel 외에 다른 table을 생성하여 관리하기 위하여 libkrisp는
kr_search_ex API를 제공 합니다.
‘man 3 kr_search_ex‘
를 참고 하십시오.
kr_search API를 호출하기 전에 KRNET_API struct의 ip member를 꼭 초기화 해 주어야 합니다.
strcpy (isp.ip, ipaddress);
kr_search (&isp, db);
성공 시에 0을 반환하며, 실패 시에 1을 반환 합니다. 검색 결과가 없는 것은 성공으로 간주를 합니다.
#include <krisp.h>
int main (void) {
KR_API * db;
KRNET_API isp;
char * addr = "kns.kornet.net";
char * database = NULL;
char err[1024];
if ( kr_open (&db, database, err) == false ) {
fprintf (stderr, "ERROR Connect: %s\n", err);
return 1;
}
isp.verbose = false;
// defined safecpy_256 in krispapi.h
safecpy_256 (isp.ip, addr);
if ( kr_search (&isp, db) ) {
printf ("ERROR: %s\n", isp.err);
kr_close (&db);
return 1;
}
kr_close (&db);
/*
* long2ip is include libipcalc.
* https://github.com/Joungkyun/libipcalc/wiki/API-long2ip
* long2ip is returned in a statically allocated buffer, which
* subsequent calls will overwrite. For thread safe, use long2ip_r.
*/
printf ("%-15s %-15s %-20s", ip, isp.ip, isp.icode);
printf ("%-15s ", long2ip (isp.start));
printf ("%-15s %s", long2ip (isp.end), isp.iname);
return 0;
}
김정균 >https://joungkyun.github.com>
https://github.com/Joungkyun/libkrisp/issues
Copyright (c) 2016 JoungKyun.Kim <http://oops.org>
이 API는 LGPL 2.1을 따르며, 사용 시의 어떠한 문제에 대하여 보증하지 않습니다.