当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

拨号上网IP地址的检知[VC/C++编程]

赞助商链接



  本文“拨号上网IP地址的检知[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

随着INTERNET在世界范围内的疾速遍及,上网的人数也越来越多.此中,绝大大都人是通过普通电话线拨号上网的.我们知道,每一台上网的计算机,不管是用何种方法上网,都被分配了一个或多个独立无二的IP地址.关于拨号上网的用户,普通是由其ISP在其每次拨号上网时动态分配一个IP地址,这个地址大概每次都不相同(其缘由主如果为了充分操纵有限资源).那么,我们可否通过某种办法随时便利地检知自己上网时的IP地址呢?答案是必定的.下面我们就用C++BUILDER编制一个玲珑的程序来实现这种功效.(注:本程序在局域网中也一样能运行)

首先用BCB的FILE菜单下的New Application成立一个新项目,取名为IPcheck.bpr.

然后,在窗体FORM1上增添五个标签(LABEL)和两个按钮(BUTTON),如图所示.

接下来,双击窗体的OnCreate事件,在此中加上以下程序:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
WSAData wsaData;
if (WSAStartup(MAKEWORD(1,1),&wsaData)!=0)
 {  //初始化WINSOCK调用
   MessageBox(NULL,"Wrong WinSock Version","Error",MB_OK);
   return ;
 }
Refresh1Click(Sender); //程序一开始,就调检知IP地址
}
    再双击Refresh按钮,在此中加上以下程序
void __fastcall TForm1::Refresh1Click(TObject *Sender)
//革新IP地址
  {
  char HostName[80];
  LPHOSTENT lpHostEnt;
  struct in_addr addr[2];
  //本程序假定主机不是多宿主机,即最多只有一块网卡和一个动态IP
  for (int i=0; i< 2; i++){
   memset(&addr[i],0,sizeof(in_addr));
    //对in_addr构造清0,以利背面填写
 }
if (gethostname(HostName,sizeof(HostName))==SOCKET_ERROR)
 { // 得到本主机名
   MessageBox(NULL,"Can't getting local host name.","Error",MB_OK);
   return ;
 }
   Label3->Caption=HostName;
   lpHostEnt=gethostbyname(HostName);//操纵得到的主机名去得到主机构造
   if (!lpHostEnt)
    {
    MessageBox(NULL,"Yow! Bad host lookup.","Error",MB_OK);
    return ;
    }
  for (int i=0; lpHostEnt- >h_addr_list[i]!=0; i++)
//从主机地址表中得到IP地址
   {
   memcpy(&addr[i],lpHostEnt- >h_addr_list[i],sizeof(in_addr));
   }
   Label4- >Caption=inet_ntoa(addr[0]);
   Label5- >Caption=inet_ntoa(addr[1]);
}
   再双击Refresh按钮,在此中加上以下程序
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   WSACleanup(); //释放WINSOCK调用
   Close();
}

最后,不要忘了在程序头部加上#include<winsock.h>.....哦.

好了,程序完成了,编译后便可运行了.本程序在中文WIN95/NT4.0下编译通过.


  以上是“拨号上网IP地址的检知[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Ubuntu ADSL拨号上网设置
  • 两步完成Windows 7开机自动拨号上网
  • windows 7下电脑启动后自动拨号上网办法
  • 拨号上网IP地址的检知
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .