delphi 怎么写获取外网ip

delphi 怎么写获取外网ip,第1张

最简单的用 ID>

ShellExecute 或 winexec执行外部指令 cmd 命令

ipconfig/all > D:cmdtxt

就能把结果输出到cmdtxt

读取文件解析就能得到网关地址

Uses shellapi

var

s:string;

begin

s:='/c ipconfig/all > D:cmd1txt';

ShellExecute(Handle,nil,'cmdexe',pchar(s),nil,SW_hide);

运行以后,循环判断文件是否存在,存在的话 就去读取cmd1txt

[解决方法]

主机地址可以用API 获得int gethostname (char name, int namelen );

[程序实现]

假设你有了名为My的对话框工程有一个按钮并有响应的程序:如OnButton1();

BOOL CListCtrl1Dlg::OnInitDialog()

{

CDialog::OnInitDialog();

AfxSocketInit(NULL);//支持Socket若在向导是没选Support Socket,这就的加还要加#include <afxsockh>在StdAfxh中

// Add "About" menu item to system menu

// IDM_ABOUTBOX must be in the system command range

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

void CListCtrl1Dlg::OnButton1()

{

WORD wVersionRequested;

WSADATA wsaData;

char name[255];

CString ip;

PHOSTENT hostinfo;

wVersionRequested = MAKEWORD( 2, 0 );

if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )

{

if( gethostname ( name, sizeof(name)) == 0)

{

if((hostinfo = gethostbyname(name)) != NULL)

{

ip = inet_ntoa ((struct in_addr )hostinfo->h_addr_list);

}

}

WSACleanup( );

}

AfxMessageBox(name);//name里是本机名

AfxMessageBox(ip); //ip中是本机IP

以上就是关于delphi 怎么写获取外网ip全部的内容,包括:delphi 怎么写获取外网ip、Delphi获取外网ip的问题拜托了各位 谢谢、Delphi中怎么根据当前IP获取网关地址啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9348889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存