inetaddr.c

来自「Intel PXA270的bootloader程序,在linux环境下运行的.」· C语言 代码 · 共 40 行

C
40
字号
#include <stdio.h>#include <stdbool.h>#include <ctype.h>#include <netinet/in.h>unsigned long inet_addr(const char *ip){	int i, ndots;	char ch;	bool valid;	unsigned long retval, val;	i = val = retval = ndots = 0;	valid = false;	while ((ch = ip[i++])){		if (isdigit(ch)){			val = (val * 10) + (ch & 0x0F);	// '0' -> 0.			valid = true;		} else if (ch == '.'){			if (val > 0xFF) return 0;			retval = (retval << 8) | val;			val = 0;			ndots++;			valid = false;		} else return 0;	}	if (!valid || ndots != 3) return 0;	retval = (retval << 8) | val;	return htonl(retval);}int main(int argc, char **argv){	if (argc != 2) return -1;	printf("0x%08lx\n", inet_addr(argv[1]));	return 0;}

⌨️ 快捷键说明

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