⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contact_dat.c

📁 p2p类源代码 kadc协议官方源代码
💻 C
字号:
#include <stdio.h>/* Print an IP address in host byte order (LSB first) */void printip(unsigned int *ip) {	unsigned char *b = (unsigned char *)ip;	printf("%d.%d.%d.%d", b[3], b[2], b[1], b[0]);}unsigned long int changelongendianity(unsigned long int ul) {	unsigned char uc;	unsigned char *puc1 = (unsigned char *)&ul;	unsigned char *puc2 = (unsigned char *)&ul+3;	uc = *puc1;	*puc1++ = *puc2;	*puc2-- = uc;	uc = *puc1;	*puc1++ = *puc2;	*puc2-- = uc;	return ul;}main(int ac, char *av[]){	int i,j;	FILE *fn;	int numContacts;	unsigned int id[4];	unsigned int binip;	unsigned short int udpport;	// unsigned short int tcpport;	unsigned char type;	if(ac <= 1) {		printf("usage: %s nodes.dat\n", av[0]);		exit(1);	}	fn = fopen(av[1], "rb");	if(fn == NULL) {		printf("can't open %s\n", av[1]);		exit(1);	}	if(fread(&numContacts, sizeof(numContacts), 1, fn) != 1)		numContacts = 0;	if(numContacts == 0) {		printf("no contacts in %s\n", av[1]);		exit(1);	}	for(i=0; i < numContacts; i++) {		if(fread(&id, sizeof(id), 1, fn) != 1)			goto err;		if(fread(&binip, sizeof(binip), 1, fn) != 1)			goto err;		if(fread(&udpport, sizeof(udpport), 1, fn) != 1)			goto err;//		if(fread(&tcpport, sizeof(tcpport), 1, fn) != 1)//			goto err;		if(fread(&type, sizeof(type), 1, fn) != 1)			goto err;		/* also MD4 in nodes.dat are little endian */		for(j=0;j<4;j++) printf("%08x", id[j]);		printf(" ");		binip = changelongendianity(binip);		printip(&binip);		printf("%6u", udpport);//		printf("%6u", tcpport);		printf("%4u", type);		printf("\n");	}	fclose(fn);	exit(0);err:	printf("premature EOF or error encountered.\n");	exit(1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -