拨号上网IP地址的检知

随着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下编译通过。

时间: 2024-08-02 22:28:44

拨号上网IP地址的检知的相关文章

Android 手机上获取手机当前上网IP地址(手机网关给手机号分配的IP)

Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手机号分配一个IP地址(当然这个IP地址会在下线上线后会改变,网关都有记录的) 现在做的应用需要获取该IP地址,提交给服务器,代码如下: /** * 用来获取手机拨号上网(包括CTWAP和CTNET)时由PDSN分配给手机终端的源IP地址. * * @return * @author SHANHY */ public static String getPsdnIp() {

怎样隐藏你的上网IP地址

  大家都知道上网的时候暴露IP比较危险,那么怎样隐藏电脑的真实IP地址呢?方法有很多,但是大多数方法操作起来很麻烦,那么我们可以通过打造一个代理服务器实现简单而又完美地隐藏IP地址.只要你有一台空闲的电脑,例如办公室的电脑,那么我们就可以把它打造成代理服务器,以后只要点击一下就可以轻松连上,用办公室的IP上网了. 只要我们连上虚拟网络,整个网络环境都会改变,无论是打开网页还是聊QQ,又或者是其他的一切应用,使用的都是代理服务器的IP地址,这样使用起来就非常方便快捷了. Step1.右键单击"网

Windows 7查自己上网ip地址的4种方法

方法一:进入到搜索引擎,如我们打开百度,然后直接输入"IP" 就会显示出你的IP地址了,这个方法最简单了. 方法二:利用命令模式,我们打开"开始"->运行然后输入"cmd" 在打开CMD界面输入"ipconfig"回车即可看到自己的ip地址. 方法三:利用网络连接,我们在控制面板进入到"网络和共享中心"-"无线网络连接"-然后点击"详细信息" 里面会有你的IP地

手机的ip地址在哪看?手机上网ip地址查看方法

查看iphone手机的ip地址 1.首先打开手机里的App Store. 2.点击进入之后.往下拉.找到关于手机. 3.点击进入关于手机.会看到状态信息. 4.点击进入状态信息.往下拉,就会看到手机的ip地址信息了. 友情提示 在查看到ip地址旁边有一个dns了,我们如果手机不能上网我们可以修改dns哦,有些手机是自动获取ip地址的,我们可以自行设置一下哦,当然这个IP地址不是外网的而是我们本机或局域网的一个IP地址,这样还可以解决自动获取IP不能上网的问题.

路由器中查看自己上网IP地址方法

本地IP地址,是由路由器分配的,一般都是192.168.1.x - 192.168.1.xx之间,其中x代表数字1-254之间,这个本地IP地址,用户可以控制更改.而网络IP地址是网络运营商提供,用户无法更改. 路由器查看IP地址方法很简单,以TP-Link路由器为例: 1.首先在电脑中打开浏览器,然后打开路由器管理登录界面:192.168.1.1,按回车键打开,并输入账号密码,登录路由器管理界面. 2.打开路由器管理界面后,在运行状态的WAN口状态中,就可以查看到IP地址了,如图所示. 方法二

怎么查看自己的上网IP地址?

方法一,在seo/seo.html" target="_blank">搜索引擎中直接输入IP,下面了百度为例子,我们在百度搜索框中输入IP显示如下.   方法二,在ip139去查自己的IP了,我们只需要打开地址就可以看到自己的IP 方法三,查看本地网络连接,在里面有一个详细的的IPV4即可.  

怎么解决ip地址与网络上的其他系统有冲突不能上网

  怎么解决ip地址与网络上的其他系统有冲突不能上网           ip地址与网络上的其他系统有冲突,从而导致无法上网,改怎么解决呢?小编给大家介绍一些解决办法.   方法一 修复本地衔接 1.打开"网上邻居".如图 2.点击左边栏目的"查看网络连接".如图 3.双击鼠标,打开"本地连接",查看本地连接的状态.如图 4.在"本地连接 状态"窗口中,点击"支持".如图 5.接着,点击窗口中的"

用Visual C#获得计算机名称和IP地址

ip地址|visual      Visual C#是微软公司推出的下一代程序开发语言,是微软.net 框架中的的一个重要组成部分,在推出Visual C#的过程中,微软公司还推出了与之相对应的一个软件开发包--.Net Framework SDK.此软件开发包里面封装了许多类.对象.Visual C#就是通过调用这些类.对象来实现许多比较强大的功能.   在.Net FrameWork SDK中提供了二个可用于网络编程的名称空间,一个是System.Net,另一个是System..Net.So

拨号适配器诱发IP地址冲突故障的解决

无论是笔记本电脑还是普通台式计算机,目前使用的Internet接入方式主要有三种,一种是通过普通的调制解调器进行电话拨号上网(这种方式虽然已不多见,但在一些安装有Windows 98操作系统的计算机中,拨号适配器往往会自动被系统安装的),一种是通过宽带"猫"借助电话线进行宽带拨号上网,另外一种就是通过局域网接入方式直接访问Internet网络.不过相同的一台计算机要是同时使用了多种网络接入方式的话,上网用户日后在设置TCP/IP参数时,很容易混淆拨号适配器和网卡适配器,一旦将这些适配器