获取本地主机ip

Windows平台:

char* getlocalhostip ()

{

char *ip=NULL;

WORD wVersionRequested;

WSADATA wsaData;

char name[255];

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();

}

return ip;

}

Linux平台:

char* getlocalhostip ()

int MAXINTERFACES=16;
char *ip=NULL;
int fd, intrface;
struct ifreq buf[MAXINTERFACES]; ///if.h
struct ifconf ifc; ///if.h

if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) >= 0) //socket.h
{
ifc.ifc_len = sizeof buf;
ifc.ifc_buf = (caddr_t) buf;
if (!ioctl (fd, SIOCGIFCONF, (char *) &ifc)) //ioctl.h
{
intrface = ifc.ifc_len / sizeof (struct ifreq);

while (intrface-->0)
{
if (!(ioctl (fd, SIOCGIFADDR, (char *) &buf[intrface])))
{
ip=(inet_ntoa(((struct sockaddr_in*)(&buf[intrface].ifr_addr))->sin_addr));//types
break;
}
}
}
close (fd);
}
return ip;
}

时间: 2024-11-05 18:45:07

获取本地主机ip的相关文章

关于Java获取本地服务器IP的问题

Java获取本地服务器IP,我们最简单的写法: import java.net.InetAddress; public class CatchIp{ public static void main(String[] args) { try { // 获取IP地址 String ip = InetAddress.getLocalHost().getHostAddress(); System.out.println("IP地址:"+ip); } catch (Exception e) {

获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址

/** * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; * @Title: getIpAddress * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param request * @param @return * @param @throws IOException 参数 * @return String 返回类型 * @throws */ public String getIpAddress(HttpServletR

获取本地公网IP地址的方法

适用场景: 服务器地址为net映射地址,本机ifconfig无法直接获取映射的公网地址. 方法1: [[email protected]1 nidongde]# curl http://ifconfig.me 50.1xx.2xx.18 ifconfig.me的地址为日本地址,访问可能比较慢. 方法2: [[email protected]1 nidongde]# curl http://www.net.cn/static/customercare/yourip.asp 2>/dev/null|

获取本地连接ip地址(通用版)

@echo off & setlocal enabledelayedexpansionrem 如果系统中有route命令,优先采用方案1:for /f "tokens=3,4" %%a in ('route print^|find "0.0.0.0 0.0.0.0"') do ( set "gate=%%a" & set "ip=%%b")for /f "tokens=2" %%a in (

window系统上用PHP获取本地物理IP代码

<?php $res=system("ipconfig -all"); $contents=trim(ob_get_clean()); $contents=str_replace("\r\n","",$contents); $contents=explode(" ",$contents); foreach($contents as $k=>&$v) { $pre=substr($v,0,8); if($pr

在页面获取本地电脑IP

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% ResourceBundle resource = ResourceBundle.getBundle("config"); String ctx = request.ge

Linux下编程获取本地IP地址的常见方法

转载于:http://blog.csdn.net/k346k346/article/details/48231933 在进行linux网络编程时,经常用到本机IP地址.本文罗列一下常见方法,以备不时之需. 获取本机IP地址,是一个相当灵活的操作,原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的.比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡.用户计算机所在网络拓扑结构未知,主机名设置是一个可选项,并且同样可以为一

【C#】C#获取本地的内网(局域网)和外网(公网)IP地址的方法

1.获取本机的IP地址集合: 1 /// <summary> 2 /// 获取本机所有ip地址 3 /// </summary> 4 /// <param name="netType">"InterNetwork":ipv4地址,"InterNetworkV6":ipv6地址</param> 5 /// <returns>ip地址集合</returns> 6 public s

C#获取本地IP地址,内网+外网方法

1 #region 获取内.外网Ip 2 3 /// <summary> 4 /// 获取本地ip地址,优先取内网ip 5 /// </summary> 6 public static String GetLocalIp() 7 { 8 String[] Ips = GetLocalIpAddress(); 9 10 foreach (String ip in Ips) if (ip.StartsWith("10.80.")) return ip; 11 for