获取多网卡IP地址(D7~XE5)和本机计算机名称
来源:互联网 发布:python爬付费课程 编辑:程序博客网 时间:2024/05/24 06:38
方法一:D2010以前版本,以DELPHI7为例
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,WinSock, Menus;type TForm1 = class(TForm) memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}function MYComputerName: string;var FStr: PChar; FSize: Cardinal;begin FSize := 255; GetMem(FStr, FSize); Windows.GetComputerName(FStr, FSize); Result := FStr; FreeMem(FStr);end;function GetLocalIpList(var IpList: TStringList): Integer;type TaPInAddr = array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr;var HostName: array[0..MAX_PATH] of Char; NameLen: Integer; WSData: TWSAData; lpHostEnt: PHostEnt; I: Integer; pptr: PaPInAddr;begin Result := 0; if WSAStartup(MakeWord(2, 0), WSData) <> 0 then Exit; try NameLen := sizeof(HostName); fillchar(HostName, NameLen, 0); NameLen := GetHostName(HostName, NameLen); if NameLen = SOCKET_ERROR then Exit; lpHostEnt := GetHostByName(HostName); if lpHostEnt = nil then Exit; I := 0; pPtr := PaPInAddr(lpHostEnt^.h_addr_list); IpList.Clear; while pPtr^[I] <> nil do begin IpList.ADD(inet_ntoa(pptr^[I]^)); Inc(I); end; Result := IpList.Count; finally WSACleanup; end;end;procedure TForm1.Button1Click(Sender: TObject);var IpList1: TStringList;begin IpList1 := TStringList.Create; GetLocalIpList(IpList1); self.memo1.Lines.Text := IpList1.Text; IpList1.Free;end;end.方法二:DELPHI2010以后版本,以XE5为例
unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, winsock, sButton, StdCtrls, sMemo;type TForm1 = class(TForm) memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}function MYComputerName: string;var FStr: PChar; FSize: Cardinal;begin FSize := 255; GetMem(FStr, FSize); Winapi.Windows.GetComputerName(FStr, FSize); Result := FStr; FreeMem(FStr);end;function GetLocalIpList(var IpList: TStringList): Integer;type TaPInAddr = array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr;var HostName: array[0..MAX_PATH] of AnsiChar; NameLen: Integer; WSData: TWSAData; lpHostEnt: PHostEnt; I: Integer; pptr: PaPInAddr;begin Result := 0; if WSAStartup(MakeWord(2, 0), WSData) <> 0 then Exit; try NameLen := sizeof(HostName); fillchar(HostName, NameLen, 0); NameLen := GetHostName(HostName, NameLen); if NameLen = SOCKET_ERROR then Exit; lpHostEnt := GetHostByName(HostName); if lpHostEnt = nil then Exit; I := 0; pPtr := PaPInAddr(lpHostEnt^.h_addr_list); IpList.Clear; while pPtr^[I] <> nil do begin IpList.ADD(inet_ntoa(pptr^[I]^)); Inc(I); end; Result := IpList.Count; finally WSACleanup; end;end;procedure TForm1.Button1Click(Sender: TObject);var IpList1: TStringList;begin IpList1 := TStringList.Create; GetLocalIpList(IpList1); self.memo1.Lines.Text := IpList1.Text; IpList1.Free;end;end.
0 0
- 获取多网卡IP地址(D7~XE5)和本机计算机名称
- VB6获取本机网络适配器信息(网卡名称、IP地址、子网掩码、默认网关等)
- 获取计算机的名称和IP地址
- Java获取本机名称和IP地址
- Qt获取本机IP地址和名称
- linux获取本机网卡ip地址
- JAVA获取本机网卡IP地址
- python 获取本机计算机名和IP地址
- python 获取本机计算机名和IP地址
- 获取本机计算机名和IP地址
- c#获取本机多网卡ip地址
- ioctl 获取本机网卡ip地址 | socket()
- 获取本机IP地址以及本机名称
- 怎样获得本机的Ip地址和计算机的名称
- 获取本地计算机的名称和IP地址
- 获取本地计算机的名称和IP地址
- python 获取网卡名称及其IP地址
- js获取本机mac地址,IP地址,计算机名
- keil中error: #70: incomplete type is not allowed——已解决!
- ArcGIS Server for JavaScript 3.3 的安装部署
- Remove Duplicates from Sorted Array II
- Core Animation Basics-Core Animation Programming Guide (1)
- data:image/png;base64有什么作用
- 获取多网卡IP地址(D7~XE5)和本机计算机名称
- 详解Android动画之Frame Animation
- 排序
- 典型应用
- OM销售-订单行信息
- 关于Flash Builder 4.x的概要分析
- 如何看linux是32位还是64位
- 开始使用sencha touch
- 解剖Shapefile