国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

撥號(hào)上網(wǎng)IP地址的檢知

2019-11-17 05:25:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  ---- 隨著INTERNET在世界范圍內(nèi)的迅速普及,上網(wǎng)的人數(shù)也越來(lái)越多。其中,絕大多數(shù)人是通過(guò)普通電話線撥號(hào)上網(wǎng)的。我們知道,每一臺(tái)上網(wǎng)的計(jì)算機(jī),不論是用何種方式上網(wǎng),都被分配了一個(gè)或多個(gè)獨(dú)立無(wú)二的ip地址。對(duì)于撥號(hào)上網(wǎng)的用戶,一般是由其ISP在其每次撥號(hào)上網(wǎng)時(shí)動(dòng)態(tài)分配一個(gè)IP地址,這個(gè)地址可能每次都不相同(其原因主要是為了充分利用有限資源)。那么,我們能否通過(guò)某種方法隨時(shí)方便地檢知自己上網(wǎng)時(shí)的IP地址呢?答案是肯定的。下面我們就用C++BUILDER編制一個(gè)小巧的程序來(lái)實(shí)現(xiàn)這種功能。(注:本程序在局域網(wǎng)中也同樣能運(yùn)行)

---- 首先用BCB的FILE菜單下的New application創(chuàng)建一個(gè)新項(xiàng)目,取名為IPcheck.bPR

---- 然后,在窗體FORM1上添加五個(gè)標(biāo)簽(LABEL)和兩個(gè)按鈕(BUTTON),如圖所示。

---- 接下來(lái),雙擊窗體的OnCreate事件,在其中加上以下程序:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
WSAData wsaData;
if (WSAStartup(MAKEWord(1,1),&wsaData)!=0)
   {   //初始化WINSOCK調(diào)用
    MessageBox(NULL,"Wrong WinSock Version","Error",MB_OK);
    return ;
   }
Refresh1Click(Sender); //程序一開始,就調(diào)檢知IP地址
}

      再雙擊Refresh按鈕,在其中加上以下程序

void __fastcall TForm1::Refresh1Click(TObject *Sender)
//刷新IP地址
  {
  char HostName[80];
  LPHOSTENT lpHostEnt;
  strUCt in_addr addr[2];

  //本程序假設(shè)主機(jī)不是多宿主機(jī),即最多只有一塊網(wǎng)卡和一個(gè)動(dòng)態(tài)IP
  for (int i=0; i< 2; i++){
    memset(&addr[i],0,sizeof(in_addr));
         //對(duì)in_addr結(jié)構(gòu)清0,以利后面填寫
   }

if (gethostname(HostName,sizeof(HostName))==SOCKET_ERROR)
   { // 得到本主機(jī)名
    MessageBox(NULL,"Can't getting local host name.","Error",MB_OK);
    return ;
   }
    Label3->Caption=HostName;
    lpHostEnt=gethostbyname(HostName);//利用得到的主機(jī)名去獲得主機(jī)結(jié)構(gòu)
    if (!lpHostEnt)
      {
      MessageBox(NULL,"Yow!  Bad host lookup.","Error",MB_OK);
      return ;
      }
  for (int i=0; lpHostEnt- >h_addr_list[i]!=0; i++)
//從主機(jī)地址表中得到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調(diào)用
    Close();

}

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

---- 好了,程序完成了,編譯后就可運(yùn)行了。本程序在中文WIN95/NT4.0下編譯通過(guò)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁河县| 临潭县| 万载县| 那曲县| 嘉定区| 平邑县| 修武县| 兴城市| 宣恩县| 香河县| 乌拉特中旗| 江都市| 庆云县| 广丰县| 敦煌市| 唐山市| 鲜城| 盘山县| 永嘉县| 乐安县| 宁城县| 噶尔县| 荥阳市| 黑龙江省| 饶阳县| 罗甸县| 永吉县| 奇台县| 福泉市| 富宁县| 东丰县| 阳江市| 巴林右旗| 岑巩县| 阿坝县| 屯门区| 隆子县| 邻水| 赣榆县| 鸡泽县| 永兴县|