安装Indy

uses  IdStackWindows;

  1. var
  2. Isw:TIdStackWindows;
  3. slist:TStringList;
  4. begin
  5. Isw:=TIdStackWindows.Create;
  6. slist:=TStringList.Create;
  7. try
  8. Isw.AddLocalAddressesToList(slist);//这个方法可以取出IP
  9. finally
  10. FreeAndNil(Isw);
  11. FreeAndNil(slist);
  12. end;
  13. end;

另外一种方法:

  

  1. var
  2. sck: TIdStackWindows;
  3. address: TIdStackLocalAddressList;
  4. begin
  5. sck := TIdStackWindows.Create;
  6. address := TIdStackLocalAddressList.Create;
  7. try
  8. sck.GetLocalAddressList(address);
  9. for i := to address.Count - do
  10. begin
  11. if address[i].IPVersion in [Id_IPv4] then //过滤IP_V6
  12. begin
  13. Item.Caption := address[i].IPAddress; //item是其他变量
  14. end;
  15. end;
  16. finally
  17. FreeAndNil(sck);
  18. FreeAndNil(address);
  19. end;
  20. end

XE10.x 使用正常

D2010

  1. function GetLocalIP(Multi: Boolean = False): string;
  2. type
  3. PPInAddr = ^PInAddr; //取本机IP,可取多个(分行列出)
  4. var
  5. wsaData: TWSAData;
  6. HostInfo: PHostEnt;
  7. HostName: array[..] of Char;
  8. Addr: PPInAddr;
  9. begin
  10. Result := '';
  11. if WSAStartup($, wsaData) <> then
  12. exit;
  13. try
  14. if gethostname(HostName, SizeOf(HostName)) <> then Exit;
  15.  
  16. HostInfo := gethostbyname(HostName);
  17. if HostInfo = nil then Exit;
  18.  
  19. Addr := Pointer(HostInfo^.h_addr_list);
  20. if (Addr = nil) or (Addr^ = nil) then Exit;
  21.  
  22. Result := StrPas(inet_ntoa(Addr^^));
  23. inc(Addr);
  24. while (Addr^ <> nil) and Multi do begin
  25. Result := Result + ^M^J+ StrPas(inet_ntoa(Addr^^));
  26. inc(Addr);
  27. end;
  28. finally
  29. WSACleanup;
  30. end;
  31. end;

Delphi获取本机所有的IP的更多相关文章

  1. js获取本机的网络IP地址

    JavaScript是一门脚本语言,是不能操作文件,读取本地信息的,所以想要获取IP,还需要借助后端技术.方法如下: //获取本机的网络ip地址 function jsonpCallback(res) ...

  2. LabVIEW 获取本机多个ip地址

    图 1   网上见了好多设置的,都没讲清楚,在这里整理一下本机ip地址的获取问题.关键在"字符串向ip地址转换"函数的设置上面,见下图2,选择多输出就能获取本机的多个ip地址,若不 ...

  3. Delphi获取本机的MAC地址

    Delphi获取本机的MAC地址: uses   NB30; function GetAdaPterInfo(lana: Char): string; var   Adapter: TAdapterS ...

  4. java获取本机名称、IP、MAC地址和网卡名称

    java获取本机名称.IP.MAC地址和网卡名称 摘自:https://blog.csdn.net/Dai_Haijiao/article/details/80364370 2018年05月18日 1 ...

  5. delphi 获取本机IP地址和MAC地址

    unit NetFunc; interface uses SysUtils, Windows, dialogs, winsock, Classes, ComObj, WinInet, Variants ...

  6. delphi 获取本机IP地址和MAC地址 (转)

    unit NetFunc; interface uses SysUtils, Windows, dialogs, winsock, Classes, ComObj, WinInet, Variants ...

  7. Java 获取本机局域网内IP

    主要涉及NetworkInterface.Enumeration.InetAddress等类 /* 获取本机网内地址 */ public static InetAddress getInet4Addr ...

  8. Python获取本机的mac,ip,name

    Python获取mac 获取计算机名字和ip(内网ip) 指定网卡ip

  9. C# 获取本机的所有ip地址,并过滤内网ip

    private void Initialization_Load(object sender, EventArgs e) { cboxip.Items.Add("请选择IP地址") ...

随机推荐

  1. Android应用程序后台加载数据

    从ContentProvider查询你需要显示的数据是比较耗时的.如果你在Activity中直接执行查询的操作,那么有可能导致Activity出现ANR的错误.即使没有发生ANR,用户也容易感知到一个 ...

  2. XV Open Cup named after E.V. Pankratiev. GP of America

    A. Area of Effect 首先最优解中必有一个点在圆的边界上. 若半径就是$R$,则枚举一个点,然后把剩下的事件极角扫描即可,时间复杂度$O(m(n+m)\log(n+m))$. 否则圆必然 ...

  3. 小甲鱼Python第二十二讲课后习题

    笔记: 斐波那契数列的两种实现方式:   迭代的方式: 自己写的: def fab(n): n1 =1 n2 =1 n3 =1 if n < 1: return -1 if n ==1: ret ...

  4. Node.js_express_route 路由

    route 路由   (kiss my ass ヾ(゚∀゚ゞ) 请求方式        get / post /  put / delete____查 / 增 / 改 / 删 路由路径         ...

  5. vue_条件渲染_v-if_v-else_v-show

    data: { ok: true flag: false } 1. 成对出现的 v-if 和 v-else 原理是: 标签的删除与重新创建 ,有些情况必须用 v-if <p v-if=" ...

  6. cmd 命令 net start mongodb 启动不了,提示 net 不是内部命令或者外部命令

    1.要管理员的身份进入 cmd 2.右击我的电脑-->属性-->高级系统设置 3.选择高级-->环境变量 4.找到系统变量-->Path-->编辑 5.把 C:\wind ...

  7. viewport的故事(二)

     挑重点的翻译 自原文 https://www.quirksmode.org/mobile/viewports2.html   在这一页我们将聊一聊移动端的浏览器.   移动端的问题   最明显的问题 ...

  8. tomcat端口冲突,关闭端口方法

    CMD打开控制台 输入:netstat -ano | findstr 8080 //最后一行的进程号PID 输入:taskkill /F /PID 所要关闭的PID号 如图所示 之后会补充

  9. 解决 AutoMapper ProjectTo 不起作用的问题

    这两天在一个 ASP.NET Core 项目中遭遇了 AutoMapper ProjectTo 不起作用的奇怪问题,虽然在 ProjectTo 中指定了 DTO ,但 EF Core 生成的 SQL ...

  10. go 并发编程(3)

    channel go语言提供的消息通信机制被称为channel. "不要通过共享内存来通信,而应该通过通信来共享内存". channel是go语言在语言级别提供的goroutine ...