如何得到本机的真实IP?
解决方案 »
- bat转换成VB语言
- 窗体关闭按钮(X按钮)--触发事件.
- VB把ACCESS中的数据用曲线形式显示用什么控件啊,怎么用啊
- 请教在画图中,AutoRedraw、ClipControls属性设置的意义?
- winsock Server如何检测无线设备已经关闭连接
- 如何保存或提取web browser控件中的网页内容?
- ?怎样把汉字显示在 PictureBox 上
- VB访问SQL Server数据库出现实时错误‘3709’。请帮助解答!!!
- 怎样在代码中改变工具栏上的每个按钮的ENABLE属性。
- 在VB中怎么进行数据库的连接
- 请指教怎么将一张图片作为背景图?
- 点击treeview节点显示word文档问题(在线等待,解决马上给分)
在一个窗体上添加一个textPrivate Sub Form_Load() Text1.Text = Winsock1.LocalIPEnd Sub
你要在哪里通信呀
哪个不是真实的ip吧
如何得到本机的真实IP?
这个网站能追中到你的地址 traceroute 这个命令可以看到路径!!!!!你可以分析那个是你的外部地址
你试试
不好意思,不知道是哪一个!:)
my e-mail:[email protected]
#include <iphlpapi.h>
#include <stdio.h>
#include <time.h>void main(void) { DWORD Err; PFIXED_INFO pFixedInfo;
DWORD FixedInfoSize = 0; PIP_ADAPTER_INFO pAdapterInfo, pAdapt;
DWORD AdapterInfoSize;
PIP_ADDR_STRING pAddrStr; //
// Get the main IP configuration information for this machine using a FIXED_INFO structure
//
if ((Err = GetNetworkParams(NULL, &FixedInfoSize)) != 0)
{
if (Err != ERROR_BUFFER_OVERFLOW)
{
printf("GetNetworkParams sizing failed with error %d\n", Err);
return;
}
} // Allocate memory from sizing information
if ((pFixedInfo = (PFIXED_INFO) GlobalAlloc(GPTR, FixedInfoSize)) == NULL)
{
printf("Memory allocation error\n");
return;
} if ((Err = GetNetworkParams(pFixedInfo, &FixedInfoSize)) == 0)
{
printf("\tHost Name . . . . . . . . . : %s\n", pFixedInfo->HostName);
printf("\tDNS Servers . . . . . . . . : %s\n", pFixedInfo->DnsServerList.IpAddress.String);
pAddrStr = pFixedInfo->DnsServerList.Next;
while(pAddrStr)
{
printf("%52s\n", pAddrStr->IpAddress.String);
pAddrStr = pAddrStr->Next;
} printf("\tNode Type . . . . . . . . . : ");
switch (pFixedInfo->NodeType)
{
case 1:
printf("%s\n", "Broadcast");
break;
case 2:
printf("%s\n", "Peer to peer");
break;
case 4:
printf("%s\n", "Mixed");
break;
case 8:
printf("%s\n", "Hybrid");
break;
default:
printf("\n");
} printf("\tNetBIOS Scope ID. . . . . . : %s\n", pFixedInfo->ScopeId);
printf("\tIP Routing Enabled. . . . . : %s\n", (pFixedInfo->EnableRouting ? "yes" : "no"));
printf("\tWINS Proxy Enabled. . . . . : %s\n", (pFixedInfo->EnableProxy ? "yes" : "no"));
printf("\tNetBIOS Resolution Uses DNS : %s\n", (pFixedInfo->EnableDns ? "yes" : "no"));
} else
{
printf("GetNetworkParams failed with error %d\n", Err);
return;
} //
// Enumerate all of the adapter specific information using the IP_ADAPTER_INFO structure.
// Note: IP_ADAPTER_INFO contains a linked list of adapter entries.
//
AdapterInfoSize = 0;
if ((Err = GetAdaptersInfo(NULL, &AdapterInfoSize)) != 0)
{
if (Err != ERROR_BUFFER_OVERFLOW)
{
printf("GetAdaptersInfo sizing failed with error %d\n", Err);
return;
}
} // Allocate memory from sizing information
if ((pAdapterInfo = (PIP_ADAPTER_INFO) GlobalAlloc(GPTR, AdapterInfoSize)) == NULL)
{
printf("Memory allocation error\n");
return;
} // Get actual adapter information
if ((Err = GetAdaptersInfo(pAdapterInfo, &AdapterInfoSize)) != 0)
{
printf("GetAdaptersInfo failed with error %d\n", Err);
return;
} pAdapt = pAdapterInfo; while (pAdapt)
{
switch (pAdapt->Type)
{
case MIB_IF_TYPE_ETHERNET:
printf("\nEthernet adapter ");
break;
case MIB_IF_TYPE_TOKENRING:
printf("\nToken Ring adapter ");
break;
case MIB_IF_TYPE_FDDI:
printf("\nFDDI adapter ");
break;
case MIB_IF_TYPE_PPP:
printf("\nPPP adapter ");
break;
case MIB_IF_TYPE_LOOPBACK:
printf("\nLoopback adapter ");
break;
case MIB_IF_TYPE_SLIP:
printf("\nSlip adapter ");
break;
case MIB_IF_TYPE_OTHER:
default:
printf("\nOther adapter ");
}
printf("%s:\n\n", pAdapt->AdapterName); printf("\tDescription . . . . . . . . : %s\n", pAdapt->Description); printf("\tPhysical Address. . . . . . : ");
for (UINT i=0; i<pAdapt->AddressLength; i++)
{
if (i == (pAdapt->AddressLength - 1))
printf("%.2X\n",(int)pAdapt->Address[i]);
else
printf("%.2X-",(int)pAdapt->Address[i]);
} printf("\tDHCP Enabled. . . . . . . . : %s\n", (pAdapt->DhcpEnabled ? "yes" : "no")); pAddrStr = &(pAdapt->IpAddressList);
while(pAddrStr)
{
printf("\tIP Address. . . . . . . . . : %s\n", pAddrStr->IpAddress.String);
printf("\tSubnet Mask . . . . . . . . : %s\n", pAddrStr->IpMask.String);
pAddrStr = pAddrStr->Next;
} printf("\tDefault Gateway . . . . . . : %s\n", pAdapt->GatewayList.IpAddress.String);
pAddrStr = pAdapt->GatewayList.Next;
while(pAddrStr)
{
printf("%52s\n", pAddrStr->IpAddress.String);
pAddrStr = pAddrStr->Next;
} printf("\tDHCP Server . . . . . . . . : %s\n", pAdapt->DhcpServer.IpAddress.String);
printf("\tPrimary WINS Server . . . . : %s\n", pAdapt->PrimaryWinsServer.IpAddress.String);
printf("\tSecondary WINS Server . . . : %s\n", pAdapt->SecondaryWinsServer.IpAddress.String); struct tm *newtime; // Display coordinated universal time - GMT
newtime = gmtime(&pAdapt->LeaseObtained);
printf( "\tLease Obtained. . . . . . . : %s", asctime( newtime ) ); newtime = gmtime(&pAdapt->LeaseExpires);
printf( "\tLease Expires . . . . . . . : %s", asctime( newtime ) ); pAdapt = pAdapt->Next;
}
}
libcmt.lib
wsock32.lib
iphlpapi.lib
=========================
to: thirdapple(陨落雕) 你的代码还是不能解决我的问题(还是没能得到本机真实的IP)不过还是谢谢两位兄台!!***********************************
*还有没有人知道阿,还请各位帮忙!!!*
***********************************
[email protected]
有問題請與我聯系.
email:[email protected]
注册一个帐号,登录该帐号,查询该帐号的地址,就可以得到你的实际地址.
http://www.offca.com/ffca/down/rar/ffgps.rar
-----------------------------------------------
我编了三年程序 只用过VB
我用了三年VB 只用过WINSOCK
我用了三年WINSOCK 只用过UDP和TCP
我用了三年UDP和TCP 原来都用的是TCP/IP协议
http://www.offca.com/gps/iphonebbs/
**********中国网络程序开发联盟欢迎你**********
-----------------------------------------------