📄 inetaddr.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -