亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 用C語(yǔ)言 實(shí)現(xiàn) 修改 LINUX網(wǎng)絡(luò)參數(shù) [打印本頁(yè)]

作者: 寂寞游俠    時(shí)間: 2006-09-26 14:10
標(biāo)題: 用C語(yǔ)言 實(shí)現(xiàn) 修改 LINUX網(wǎng)絡(luò)參數(shù)
我想問(wèn)一下 ,如果 用C語(yǔ)言 實(shí)現(xiàn) 修改 LINUX網(wǎng)絡(luò)參數(shù)。
   比如修改  系統(tǒng)的  IP。NETMASK。DNS。網(wǎng)關(guān) 等等信息。
   用C編程實(shí)現(xiàn),怎么實(shí)現(xiàn)。。

  我說(shuō)下,我的思理
     1. 找LINUX源碼中的ifconfig。然后挖出來(lái)。。
     2. 第二,打開(kāi)/etc/sysconfig//networkk-scripts/ifcfg-eth0。按照要求 更改。,然后system("service network start")  /我的問(wèn)題是。我不知道怎么去按照 要求 對(duì)文件進(jìn)行 個(gè)更改
  
   知道的朋友 能不能指點(diǎn)下。。如果可以,給個(gè) 演示的 代碼。感激不盡亞
     
還有。想搞的東西是 用C寫(xiě)CGI。完成一個(gè)B/S模式的 網(wǎng)絡(luò) 管理的東西。。

thank you

[ 本帖最后由 寂寞游俠 于 2006-9-26 14:13 編輯 ]
作者: wuqing    時(shí)間: 2006-09-26 14:44
演示代碼?
你是不是沒(méi)有ifconfig.c和routeadd.c的源代碼?

直接打包FreeBSD6.1下的 /src/sbin/ifconfig目錄,連makefile都有

ifconfig.rar

65.63 KB, 下載次數(shù): 107

ifconfig


作者: wuqing    時(shí)間: 2006-09-26 14:45
route的源代碼
就是route add啊,route delete之類(lèi)的
分析完畢給俺寫(xiě)個(gè)學(xué)習(xí)報(bào)告吧

route.rar

16.74 KB, 下載次數(shù): 74

route


作者: 飛灰橙    時(shí)間: 2006-09-26 14:51
easy得很

  1. BOOL SetIP(const char *pcInterface, unsigned long ulIP, unsigned long ulNetmask)
  2. {
  3.         struct ifreq ifr;
  4.         int fd;
  5.         struct sockaddr_in *pAddr;

  6.         if (pcInterface == NULL)
  7.         {
  8.                 fprintf(stderr, "illegal call function SetGeneralIP!\n");
  9.                 return FALSE;
  10.         }

  11.         if ((fd = socket(AF_INET,SOCK_DGRAM,0)) < 0) return FALSE;
  12.         strcpy(ifr.ifr_name, pcInterface);

  13.         pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
  14.         bzero(pAddr, sizeof(struct sockaddr_in));
  15.         pAddr->sin_addr.s_addr = ulIP;
  16.         pAddr->sin_family = AF_INET;
  17.         if (ioctl(fd, SIOCSIFADDR, &ifr) < 0)
  18.         {
  19.                 close(fd);
  20.                 return FALSE;
  21.         }

  22.         pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
  23.         bzero(pAddr, sizeof(struct sockaddr_in));
  24.         pAddr->sin_addr.s_addr = ulNetmask;
  25.         pAddr->sin_family = AF_INET;
  26.         if (ioctl(fd, SIOCSIFNETMASK, &ifr) < 0)
  27.         {
  28.                 close(fd);
  29.                 return FALSE;
  30.         }

  31.         close(fd);
  32.         return TRUE;
  33. }
復(fù)制代碼

作者: 寂寞游俠    時(shí)間: 2006-09-26 16:00
to  wuqing   看完后,肯定 發(fā)個(gè) 報(bào)告上來(lái)。

TO  飛灰橙   ,老大的 代碼 信手沾來(lái),艾。不知道我什么時(shí)間 水平能達(dá)到這一步阿。。

   老大的代碼里面我有 幾個(gè)地方不是很明白。
  const char *pcInterface  接口名稱(chēng)的參數(shù)。具體是指什么呢?艾 實(shí)在太菜

  
pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
        bzero(pAddr, sizeof(struct sockaddr_in));
        pAddr->sin_addr.s_addr = ulIP;
        pAddr->sin_family = AF_INET;
        if (ioctl(fd, SIOCSIFADDR, &ifr) < 0)
        {
                close(fd);
                return FALSE;
        }
這段代碼。進(jìn)行了IP和NETMASK 的賦值后。已經(jīng)操作 系統(tǒng)的嗎?對(duì)進(jìn)行  配置了嗎?

  估計(jì)大家都在 鄙視我,沒(méi)辦法。真的不會(huì)
作者: 寂寞游俠    時(shí)間: 2006-09-26 16:12
const char *pcInterface  接口名稱(chēng)的參數(shù) 是 指eth0  吧?
作者: wuqing    時(shí)間: 2006-09-26 16:21
是否Linux傳入eth0,solaris下傳入hme0, bge0,HP下傳入lan0, lan1等等就可以奏效還有待測(cè)試

誰(shuí)測(cè)試測(cè)試?
作者: 寂寞游俠    時(shí)間: 2006-09-26 16:33
上面的 代碼。。 (ioctl(fd, SIOCSIFADDR, &ifr) < 0)  對(duì) 對(duì)系統(tǒng)進(jìn)行設(shè)置嗎?
作者: 飛灰橙    時(shí)間: 2006-09-26 16:36
原帖由 寂寞游俠 于 2006-9-26 16:33 發(fā)表
上面的 代碼。。 (ioctl(fd, SIOCSIFADDR, &ifr) < 0)  對(duì) 對(duì)系統(tǒng)進(jìn)行設(shè)置嗎?


對(duì)系統(tǒng)進(jìn)行設(shè)置,是指下次開(kāi)機(jī)就變成這個(gè)IP了嗎?
這個(gè)代碼恐怕辦不到。。
作者: 寂寞游俠    時(shí)間: 2006-09-26 16:44
不是的。不用重啟。。直接 該IP。系統(tǒng)的IP就變了阿。

當(dāng)然了。如果。退一步。重啟 后。系統(tǒng)IP變了。那也可以的阿。

    老大的。這段代碼實(shí)現(xiàn)了 什么功能呢?  我看的不太懂亞
作者: langue    時(shí)間: 2006-09-26 19:18
標(biāo)題: 回復(fù) 4樓 飛灰橙 的帖子
回復(fù) 4樓 飛灰橙 的帖子
ioctl(2)的可移植性如何?
作者: langue    時(shí)間: 2006-09-26 19:19
還有,千萬(wàn)不要在ssh或者其他的remote shell下面更改網(wǎng)絡(luò)參數(shù)……血的教訓(xùn)!
作者: safedead    時(shí)間: 2006-09-26 21:10
學(xué)習(xí)了
我對(duì)ioctl還有路由套接字一直都糊里糊涂
太麻煩就沒(méi)有深入研究
又懶得看iproute2的源碼


作者: lovesaka    時(shí)間: 2006-09-26 21:23
原帖由 飛灰橙 于 2006-9-26 14:51 發(fā)表
easy得很
[code]
BOOL SetIP(const char *pcInterface, unsigned long ulIP, unsigned long ulNetmask)
{
        struct ifreq ifr;
        int fd;
        struct sockaddr_in *pAddr;

        if (pcInterface == NULL)
        {
                 ...

ioctl還是真是出了名的垃圾桶函數(shù)
作者: 飛灰橙    時(shí)間: 2006-09-27 09:12
原帖由 langue 于 2006-9-26 19:18 發(fā)表
回復(fù) 4樓 飛灰橙 的帖子
ioctl(2)的可移植性如何?


ioctl哪有移植性,還不是看driver怎么幫你實(shí)現(xiàn)
作者: 寂寞游俠    時(shí)間: 2006-09-27 11:32
大家 都 偏 題了阿。

   幫助 搞定 我的問(wèn)題亞。




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2