All pastes #23908 Raw Edit

My shee

public c v1 · immutable
#23908 ·published 2005-09-26 02:16 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>char *arp_lookup(char *target) {	FILE *fp;	int i = 0, ii = 0, itsamac = 0, go = 0;	char mac[20], ip[20], c;	if((fp = fopen("/proc/net/arp", "r")) <= 0) {		fprintf(stderr, "[-] Couldn't open the arp table\n");		exit(-1);	}	/* Rid us of the preliminary line */	while((c=fgetc(fp)) != EOF) {		if(c == '\n' || c == '\r')			break;	}	if(c == EOF) 		fprintf(stderr, "[-] No addresses found?");	while(1) {		i=0;		// get ip		while((c=fgetc(fp)) != EOF && !isspace(c) && c != '\n') {		//	printf("%c", c);			if(c == '\0') continue;			++i;			ip[i] = c;		}		ip[i+1]='\0';		if(c == EOF) {			break; // thats all folks		}		if(c == '\n') {			i=0;			continue;		}		// get mac		i=0;		while((c=fgetc(fp)) != EOF && c != '\n') {			if(isspace(c)) continue;			i=0;			if(c == '0') { 				++i;				mac[i]=c; 				++i; 				c = fgetc(fp);				mac[i] = c;				c = fgetc(fp);				++i;				if(c == ':') {					mac[i]=c;					for(ii=0;ii<14;ii++) {						++i;						c=fgetc(fp);						mac[i]=c;					}					while(1) {if((c=fgetc(fp)) == '\n' || c == EOF) break; }					break;				}				else {					i=0;				}			}		} // Get mac		mac[i+1] = '\0';				printf("ip:%s\n", ip);		printf("mac:%s\n", mac); 	} // infinite loop}int main(int argc, char **argv) {	char *mac;	mac = arp_lookup("192.168.1.1");	printf("192.168.1.1 is at %s\n", mac);}