看你要获得那里的ip地址
晋江ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
如果是本及机的话,就使用windows的API啊
#include "winsock.h"
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
char* 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);
}
}
// ip is ready
WSACleanup( );
}
#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h
#include sys/socket.h
#include netinet/in.h
#include net/if.h
#include netdb.h
#include arpa/inet.h
#include sys/ioctl.h
//获取地址
//返回IP地址字符串
int getlocalip(char* outip)
{
int i=0;
int sockfd;
struct ifconf ifconf;
char buf = (char)malloc(512);
struct ifreq *ifreq;
char* ip;
//初始化ifconf
ifconf.ifc_len = 512;
ifconf.ifc_buf = buf;
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0))0)
{
return -1;
}
ioctl(sockfd, SIOCGIFCONF, ifconf); //获取所有接口信息
close(sockfd);
//接下来一个一个的获取IP地址
ifreq = (struct ifreq*)buf;
i = ifconf.ifc_len/sizeof(struct ifreq);
char *pos = outip;
int count;
for(count = 0; (count 5 i 0); i--)
{
ip = inet_ntoa(((struct sockaddr_in*)(ifreq-ifr_addr))-sin_addr);
if(strncmp(ip,"127.0.0.1", 3)==0) //排除127.x.x.x,继续下一个
{
ifreq++;
continue;
}else
{
printf("%s\n", ip);
strcpy(pos,ip);
int len = strlen(ip);
pos = '\t';
pos += len+1;
count ++;
ifreq++;
}
}
free(buf);
return 0;
}
//——————————-函数的调用方式————————————-
int main(int argc, char** argv)
{
char ip = {'*'};
if ( getlocalip( ip ) == 0 )
{
printf("本机IP地址是: %s\n", ip );
}
else
{
printf("无法获取本机IP地址 ");
}
return 0;
}
取本地地址
可以从“开始”-“程序”-“附件”-“命令提示符”里面输入英文“ipconfig/all”就可得到IP地址了,LINUX我也不太懂了。
struct in_addr addr;
hostent *pHost = ::gethostbyname("localhost");//在此写入你自己电脑主机名字
switch (pHost-h_addrtype) {
case AF_INET:
printf("internet网络地址类型(AF_INET)\n");
break;
case AF_INET6:
printf("internet网络地址类型(AF_INET)\n");
break;
case AF_NETBIOS:
printf("netbios网络地址类型(AF_NETBIOS)\n");
break;
default:
printf("其它地址类型 %d\n", pHost-h_addrtype);
break;
}
printf("\t地址长度: %d(字节)\n", pHost-h_length);
addr.s_addr = *(u_long *) pHost-h_addr_list[0];
printf("\t第一个IP地址为: %s\n", inet_ntoa(addr));