任务:unix,linux通过c程序获取本机IP.

1. 标准I/O库函数相对于系统调用的函数多了个缓冲区(,buf),安全性上通过buf 防溢出。

2.printf 这类输出函数中“ ”若包含“记得要换成转义字符\" 

[objc] view plain copy print?

  1. #include<stdio.h>

  2. #define sizeofbuf 512

  3. int main(int argc,char **argv)

  4. {

  5. char    buf[sizeofbuf];

  6. FILE    *fp;

  7. char     ch;

  8. snprintf(buf,sizeof(buf),"ifconfig |grep -v 127.0.0.1|grep 'inet addr'|awk '{print $2}'|cut -d \":\" -f2");

  9. fp = popen(buf,"r");

  10. if( NULL == fp)

  11. {

  12. printf("error");

  13. return -1;

  14. }

  15. printf("var ip = \"");

  16. while( EOF != (ch=fgetc(fp)) )

  17. {

  18. if (ch == '\n')

  19. ch = '\0'; //去除换行符

  20. else{

  21. fputc(ch,stdout);

  22. }

  23. }

  24. printf("\"\n");

  25. pclose(fp);//close piping

  26. return 0;

  27. }

  28. ~

  编译后运行成功获取本机IP

linux popen 获取 ip test ok的更多相关文章

  1. Linux准确获取IP

    有时搞一些跨网段的工程和应用,需要尽量准确的知道电信.网通.铁通等电信运营商的IP地址段分配情况,可网上的资料不但很少,而且经常都是N个月前的过期资料…… APNIC是管理亚太地区IP地址分配的机构, ...

  2. linux下获取ip

    如果打开虚拟机 没有ip置灰显示了 lo 可以使用dhclient自动获取ip 如果想开机就自动获取ip: vim /etc/rc.d/rc.local 在这里插入dhclient命令

  3. linux python3获取ip地址

    一.不带参数 #!/usr/bin/python # -*- coding: UTF-8 -*- import os def get_ip(): #注意外围使用双引号而非单引号,并且假设默认是第一个网 ...

  4. Linux下获取IP、MAC、网关、掩码的shell脚本

    Mask:ifconfig |grep inet| sed -n '1p'|awk '{print $4}'|awk -F ':' '{print $2}'IP:ifconfig |grep inet ...

  5. Linux自动获取IP地址 重启不会消失

    网络设置 root用户登录    编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 将ONBOOT=no 改为 ONBOOT=yes 并保存 重启network ...

  6. linux编程获取本机网络相关参数

    getifaddrs()和struct ifaddrs的使用,获取本机IP 博客分类: Linux C编程   ifaddrs结构体定义如下: struct ifaddrs { struct ifad ...

  7. linux系统下获取IP,MAC,子网掩码,网关

    获取IP和子网掩码 int getLocalInfo(char IP[],char Mask[]) { int fd; int interfaceNum = 0; struct ifreq buf[1 ...

  8. linux下获取本机IP

    转载:http://blog.chinaunix.net/uid-20593763-id-1620213.html 源代码级Unix/Linux 通用网卡IP地址获取方法 在Unix和Linux系统下 ...

  9. [解决]Kali Linux DHCP自动获取IP失败 坑爹的VMWare桥接

    root@kali:~# service networking restart [....] Running /etc/init.d/networking restart is deprecated ...

随机推荐

  1. Asp.net让某一页设置成gb2312或utf-8的方法

    有些需求,一定要用到utf-8格式,在web.config里面设置<globalization             requestEncoding="utf-8"     ...

  2. sql语句浅谈以及mysql遇到的问题解决见解

    mysql数据库基本操作: .显示数据库和查看mysql版本 show databases; select version(); select user();查看用户 .选择数据库 use 数据库名; ...

  3. C#中的"?"和"??"

    摘自:http://www.cnblogs.com/zxjyuan/archive/2009/10/27/1590795.html 如果你看到C#中的“?”问号脑袋里便充满问号,那么这个贴子便是为你而 ...

  4. 初识java——Java程序的历史、开发和运行

    上了一节Java试听课,整理出如下笔记.     Java最新版本下载 http://www.oracle.com/technetwork/java/javase/downloads/index.ht ...

  5. js 联动实现日期选择,一般用作生日

    实现目标:年月日三个select 输入框,以及一个hidden的input,通过js获取input的值,如果有值切是日期格式,年月日select为input中的时间.否则为空.年默认区间段为1900年 ...

  6. web API之post参数传递

    最近公司开发一个新产品,前端用的vue+element,后端用的.net core ,刚开始接触这块,接口写完后在调用接口时总出现问题,尤其是post传递参数时,很多时候都获取不到参数,没办法接口都要 ...

  7. c++11 多线程新特性学习 (1) 管理线程

    1.基础介绍 c++11中,线程是通过std::thread对象来开始的,用法为 #include<thread> //必须包含的头文件 void do_work(){ std::cout ...

  8. FZU-1759 Super A^B mod C---欧拉降幂&指数循环节

    题目链接: https://cn.vjudge.net/problem/FZU-1759 题目大意: 求A^B%C 解题思路: 注意,这里long long需要用%I64读入,不能用%lld #inc ...

  9. GPU 与CPU的作用协调,工作流程、GPU整合到CPU得好处

    http://blog.csdn.net/maopig/article/details/6803141 在不少人的心目中,显卡最大的用途可能就只有两点——玩游戏.看电影,除此之外,GPU并没有其他的作 ...

  10. PHP-----CMS

    刚刚看到了一篇关于phpcms的文章自己今后比较有帮助,就把它摘了下来. 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wam ...