`
xiaoheliushuiya
  • 浏览: 402246 次
文章分类
社区版块
存档分类
最新评论

linux C 获取与修改IP地址

 
阅读更多
//setip.h
#ifndef _INCLUDE_SETIP_H_
#define_INCLUDE_SETIP_H_


//设置IP地址
/*
* 函数名称 : int setip(char *ip)
* 函数功能 : 设置系统IP地址
* 参 数 :
* char *ip :设置的IP地址,以点分十进制的字符串方式表示,如“192.168.0.5”
* 返 回 值 : 0 : 成功 ; -1 : 失败
*/
intsetip(char*ip);

//获取IP地址
/*
* 函数名称 : char * getip(char *ip_buf)
* 函数功能 : 获取系統IP地址
* 参 数 :
* char *ip_buf :用来存放IP地址的内存空间
* 返 回 值 : ip_buf : 存放IP地址的内存地址
*/
char* getip(char*ip_buf);

#endif//_INCLUDE_SETIP_H_

//end setip.h
//setip.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/ioctl.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<net/if.h>
#include"setip.h"

//设置IP地址
/*
* 函数名称 : int setip(char *ip)
* 函数功能 : 设置系统IP地址
* 参 数 :
* char *ip :设置的IP地址,以点分十进制的字符串方式表示,如“192.168.0.5”
* 返 回 值 : 0 : 成功 ; -1 : 失败
*/
intsetip(char*ip)
{
structifreq temp;
structsockaddr_in *addr;
intfd = 0;
intret = -1;
strcpy(temp.ifr_name,"eth0");
if((fd=socket(AF_INET, SOCK_STREAM, 0))<0)
{
return-1;
}
addr = (structsockaddr_in *)&(temp.ifr_addr);
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr(ip);
ret = ioctl(fd, SIOCSIFADDR, &temp);
close(fd);
if(ret < 0)
return-1;
return0;
}

//获取IP地址
/*
* 函数名称 : char * getip(char *ip_buf)
* 函数功能 : 获取系統IP地址
* 参 数 :
* char *ip_buf :用来存放IP地址的内存空间
* 返 回 值 : ip_buf : 存放IP地址的内存地址
*/
char* getip(char*ip_buf)
{
structifreq temp;
structsockaddr_in *myaddr;
intfd = 0;
intret = -1;
strcpy(temp.ifr_name,"eth0");
if((fd=socket(AF_INET, SOCK_STREAM, 0))<0)
{
return-1;
}
ret = ioctl(fd, SIOCGIFADDR, &temp);
close(fd);
if(ret < 0)
returnNULL;
myaddr = (structsockaddr_in *)&(temp.ifr_addr);
strcpy(ip_buf, inet_ntoa(myaddr->sin_addr));
returnip_buf;
}


/*测试程序*/
/*
int test_fun(int argc, char * argv[])
{
char * ip = "172.20.223.117";
char buf[16]="";
setip(argv[1]);
printf("ipaddr=%s/n",getip(buf));
return 0;
}
*/
//end setip.c
转自http://blog.csdn.net/jueqing007/article/details/5991859
分享到:
评论

相关推荐

    linux程序 能够自动获取ip地址

    本程序在linux环境下使用。实现了自动获取ip的功能。程序编程风格良好,有相应的注释,方便查看。c文件的开头简明的介绍了使用方法,不需要更改就可以在linux下运行。

    c语言实现设置ip、网关、子网掩码

    c语言,包含获取指定网口ip地址,mac地址,网关,以及c语言实现修改ip,网关,子网掩码,以及设置socket套接字加入到多播组的方法;。

    test_set_ip_获取并修改板卡的IP地址_

    在linux系统下利用C语言编写代码实现获取板卡本地IP地址并重新设置板卡IP地址的功能。

    c语言实现设置ip、网关、子网掩码 时间字符串相互转换

    c语言,包含获取指定网口ip地址,mac地址,网关,以及c语言实现修改ip,网关,子网掩码,以及设置socket套接字加入到多播组的方法;可以实现linux下的time_t和字符串的相互转换。

    linux中mac地址绑定方法

    一台linux服务器受到ARP攻击,在使用... 您可能感兴趣的文章:php获取网卡的MAC地址支持WIN/LINUX系统详解Linux系统中网卡MAC地址克隆方法linux下修改MAC地址问题解决方法linux修改mac地址方法分享linux手动、自动更改网

    linux学习记录

    Wget 网址 linux上访问地址 Ps -auxf | grep sss:查看linux下正在运行的进程 Linux环境下部署EAR等 vi profile 在profile文件中修改环境变量 如:export JAVA_HOME=... Export CLASS_PATH=... Export PATH=$PATH...

    LINUX操作系统(电子教案,参考答案)

    13.3.2 设定IP地址及TCP/IP 基本参数 213 13.3.3 检测连通性 215 13.3.4 使用MODEM拨号上网 216 13.4 TCP/IP实用程序 218 13.4.1 ping 218 13.4.2 Telnet 219 13.4.3 FTP 220 13.4.4 traceroute 223 13.4.5 ifconfig...

    RED HAT LINUX 6大全

    11.5.3 DNS将名字映射到IP地址及反 序操作 207 11.5.4 前区和反区必须保持同步 207 11.5.5 HUP信号和重启 207 11.5.6 IN-ADDR.ARPA域 207 11.5.7 主机命名方案 208 11.5.8 配置DNS客户:/etc/resolv.conf 208 ...

    LINUX安装与配置简明手册

    3.2.7 为一个专用的本地网络分配IP地址 25 3.2.8 从引导管理程序失误中恢复NT 25 3.2.9 制作一张定制的Linux操作系统 引导盘 26 3.2.10 设置直接引导启动到Caldera 发行版本 26 3.2.11 直接引导启动到Caldera发行...

    portscan:批量扫描IP端口程序(适用于window&linux)

    假设1.txt文件内容为127.0.0.1 192.168.1.1然后我们获取文件内容IP进行扫描 窗口.bat版本 :1.txt为文件名,根据需求进行修改 :C:\nmap\nmap-6.46\nmap.exe 为namp的路径,根据需求进行修改 :把1.txt与该扫描脚本放一起...

    LINUX系统管理白皮书

    2.2 IP地址 14 2.3 地址解析 15 2.4 IP路由 16 2.4.1 IP网络 16 2.4.2 子网 16 2.4.3 网关 16 2.5 路由表 17 2.6 Internet控制消息协议 18 2.7 域名系统 19 2.7.1 主机名解析 19 2.7.2 输入DNS 20 2.7.3 ...

    linux大作业报告

    2、设计shell脚本程序,在屏幕上输出操作系统的信息,包括计算机名、Linux分发版本名称、Linux内核版本和当前的IP地址。 3、设计shell脚本程序,要求用户对/home目录下的文件进行备份,压缩为Linux系统中常用的tar....

    linux安装与配置简明手册

    3.2.7 为一个专用的本地网络分配IP地址 25 3.2.8 从引导管理程序失误中恢复NT 25 3.2.9 制作一张定制的Linux操作系统 引导盘 26 3.2.10 设置直接引导启动到Caldera 发行版本 26 3.2.11 直接引导启动到Caldera...

    cmd操作命令和linux命令大全收集

    3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在 Windows 98 中却没有集成这一个工具。 4. explorer-------打开...

    入门学习Linux常用必会60个命令实例详解doc/txt

    因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...

    TCP/IP技术大全

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

    TCP/IP教程TCP/IP基础

    10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 ...

Global site tag (gtag.js) - Google Analytics