Nmap接口获取及解析--代码学习笔记

一、获取系统中所有的网络接口的方法

方法1.读取/proc/net/dev

intf_loop(intf_t *intf, intf_handler callback, void *arg)//按行读取/proc/net/dev,来获取接口名
{
	FILE *fp;
	struct intf_entry *entry;
	char *p, buf[BUFSIZ], ebuf[BUFSIZ];
	int ret;
	
	if ((fp = fopen(PROC_DEV_FILE, "r")) == NULL)//#define PROC_DEV_FILE    "/proc/net/dev"
		return (-1);	
	...

	while (fgets(buf, sizeof(buf), fp) != NULL) { //按行读取/proc/net/dev
		if ((p = strchr(buf, ':')) == NULL)  //遇到:,则保存指针
			continue;
		*p = '\0';                             //在原先‘:‘ 的位置,存入'\0',截断字符串
		for (p = buf; *p == ' '; p++)         //去掉多余的空格
			;
		}
		if (_intf_get_noalias(intf, entry) < 0) {
			ret = -1;
			break;
		}
		....
	
	return (ret);
}

写一段小程序,理解这里的字符串截取

   char buf[] = "123:456";
    char *p;
    p = strchr(buf,':');
    *p = '\0&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值