pc机取得并修改arm linux IP地址 网关 子网掩码 主机名等信息

(一)获取

1、当pc发送广播,arm linux收到广播信息时,向客户端发送确认信息
   客户端可通过socket取出IP地址
  
2、当pc机发送请求取得上述信息参数时,执行以下系统调用
   system("hostname > hostfile");
   system("ifconfig > ipfile");
   system("route > gwfile");
   并将这些文件读取传送到客户端,即pc3、客户端接收到信息后,将其写到一个文件中4、通过文件的特殊标记定位,就可以取得子网掩码 网关 主机名等信息

(二)设置
1、取得设置的主机名、IP、网关、子网掩码等信息
2、将其格式化如下:
   对主机名而言:
  (1)单独发送到服务器,服务器程序将其写在一个单独文件中,如:/prog/HOSTNAME
   (2)修改/etc/init.d/rcS应项为/bin/hostname -F /prog/HOSTNAME   对其他来说:
   (1)格式化信息如下:
      假若你输入的IP地址为172.29.26.41  子网掩码为255.255.255.0
      /sbin/ifconfig eth0 172.29.26.41 netmask 255.255.255.0
   (2)假若你输入的默认网关为172.29.26.1
      /sbin/route add default gw 172.29.26.1
3、将其替代rcS中的对应项,然后发送到服务器端
4、重新启动服务器,设置生效//客户端获取
void CWireDialog::OnDownload()
{
 /*
  向服务器发送获取信息,服务器进行系统调用,将信息写在文件中:ip gw
 */
 
 SOCKET sockfd;
  SOCKADDR_IN sin,saUdpServ,saClient;
 struct TO_SERVER m_msg;
  int nSize,nbSize;
  int ncount=0;
 char *userinfo;
 userinfo = new char[2048];
  sockfd=socket(PF_INET,SOCK_DGRAM,0);
  sin.sin_family = AF_INET;
  sin.sin_port = htons(0);
  sin.sin_addr.s_addr=htonl(INADDR_ANY);
  if(bind( sockfd, (SOCKADDR *)&sin, sizeof(sin))!=0)
  {
    AfxMessageBox("不能创建网络接口/n");//初始化失败返回-1
  closesocket(sockfd);
    return;
  }
  saUdpServ.sin_family = AF_INET;
  saUdpServ.sin_addr.s_addr = inet_addr(curIP);
  saUdpServ.sin_port = htons (PORT);//发送用的端口,可以根据需要更改 //
  nSize = sizeof ( SOCKADDR_IN );
 m_msg.MsgID = ID_GETNETINFO;
  sendto ( sockfd,(char*)&m_msg, sizeof(m_msg),0,(SOCKADDR *) &saUdpServ,sizeof ( SOCKADDR_IN ));
  nSize = sizeof ( SOCKADDR_IN );
  while(1)
 {
  if((nbSize=recvfrom (sockfd,(char*)&m_msg,sizeof(m_msg),0,(SOCKADDR FAR *) &saClient,&nSiz

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值