|
|
researchv8 Dan Cross
#include <sys/inet/in.h>
#include <stdio.h>
#include "config.h"
static char *files[] = {
HOSTS,
NETWORKS,
};
#define NFILES (sizeof(files) / sizeof(files[0]))
/* imported */
extern char *in_getw();
char *
in_host(addr)
in_addr addr;
{
char buf[512], *p;
static char b[32];
int x, i;
FILE *fp;
unsigned char *xp;
xp = (unsigned char *) &addr;
for(i = 0 ; i < NFILES; i++){
if((fp = fopen(files[i], "r")) == 0){
perror(files[i]);
continue;
}
while(fgets(buf, sizeof(buf), fp)){
if(buf[0] == '\n' || buf[0] == '#')
continue;
if((p = in_getw(buf, b)) == 0)
continue;
x = in_address(b);
if(x == 0)
continue;
if((p = in_getw(p, b)) == 0)
continue;
if(x == addr){
fclose(fp);
return(b);
}
}
fclose(fp);
}
sprintf(b, "%d.%d.%d.%d", xp[3], xp[2], xp[1], xp[0]);
return(b);
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.