能不能用C语言编个可以自动改本机IP和子网掩码和网关,要根据本机MAC地址来改指定的IP

andywiliang 2008-04-19 08:15:47
能不能用C语言编个可以自动改本机IP和子网掩码和网关,要根据本机MAC地址来改指定的IP
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
lz要干嘛?
andywiliang 2008-04-25
  • 打赏
  • 举报
回复
顶啊..........................
andywiliang 2008-04-20
  • 打赏
  • 举报
回复
1楼,文件的修改又是编程的哪方面知识呢?
星羽 2008-04-20
  • 打赏
  • 举报
回复
星羽 2008-04-20
  • 打赏
  • 举报
回复
什么平台 windows ? linux ?


linux 下修改ip

Reader_11 »
给你一个修改IP地址的代码
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <fcntl.h>
#include <errno.h>
#include <net/if.h>


int ifconfig(const char *ifname, const char *ipaddr)
{
struct sockaddr_in sin;
struct ifreq ifr;
int fd;

int ret;
char *ptr;
short found_colon = 0;

bzero(&ifr, sizeof(struct ifreq));
if (ifname == NULL)
return (-1);
if (ipaddr == NULL)
return (-1);

fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd == -1)
{
perror("Not create network socket connection\\n");
return (-1);
}

strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(ipaddr);
memcpy(&ifr.ifr_addr, &sin, sizeof(sin));

if (ioctl(fd, SIOCSIFADDR, &ifr) < 0)
{
perror("Not setup interface\\n");
return (-1);
}

ifr.ifr_flags |= IFF_UP | IFF_RUNNING;

if (ioctl(fd, SIOCSIFFLAGS, &ifr) < 0)
{
perror("SIOCSIFFLAGS");
return (-1);
}
return (0);
}

//Usage setip eth0 xxx.xxx.xxx.xxx
int main(int argc, char *argv[])
{
ifconfig(argv[1], argv[2]);
return 0;
}





我是风 2008-04-19
  • 打赏
  • 举报
回复
up
帅得不敢出门 2008-04-19
  • 打赏
  • 举报
回复
网上应该有源代码的
csdn5211 2008-04-19
  • 打赏
  • 举报
回复
windows下的话,本机IP和子网掩码和网关都在一个文件里(文件名我也忘了),改那个文件就可以了。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧