‘壹’ 请问 c语言怎样获取计算机ip地址啊
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));
‘贰’ 请问 , 用c语言怎样获取ip地址啊 谢谢了
看你要获得那里的ip地址
如果是本及机的话,就使用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( );
}
‘叁’ 编程:C语言编程取得本机ip地址
#include "stdio.h"
#include "conio.h"
main()
{
int i,j;
char ip[20];
char temp[100];
char ch='\0';
FILE *fp;
system("ipconfig >d:\\myip.txt");
if ((fp=fopen("d:\\myip.txt","r"))==NULL)
{
printf("the file can not open:\nPress any key to exit:");
getch();
exit(1);
}
for (i=0;i<7;i++)
{fgets(temp,80,fp); /*跳过一些行*/
/*printf("%s\n",temp); */}
fgets(temp,80,fp);
i=0;j=0;
while (temp[i++]!=':')
;
while (temp[i]!='\n')
ip[j++]=temp[i++];
ip[j]=0;
printf("IP=%s\n",ip);
fclose(fp);
system("del d:\\myip.txt");
getch();
}
‘肆’ 用C语言编写程序如何获得外网的IP的地址
//通过ip138网站来查询外网IP的
#include <afxinet.h>
void CLanChatDlg::GetNetIP()
{
SetDlgItemText(IDC_NET_IP,"正在获取外网IP");
CString strsource;
CString Address;
CInternetSession mySession(NULL,0);
CHttpFile* myHttpFile=NULL;
Address="http://www.ip138.com/ip2city.asp";//ip138网页
myHttpFile=(CHttpFile*)mySession.OpenURL(Address);//读取网络地址
while(myHttpFile->ReadString(strsource))
{ //循环读取下载来的网页文本
// AddToLog(strsource);
int begin=0;
begin=strsource.Find("[",0);
if(begin!=-1)//如果找到"[", 则找"]" 中括号内的文本则是 你的外网ip
{ int end=strsource.Find("]");
m_internetip=strsource.Mid(begin+1,end-begin-1);//提取外网ip
SetDlgItemText(IDC_NET_IP,m_internetip);//在左下角显示外网ip
}
}
‘伍’ 怎么用c或者c++代码获取默认DNS服务器的ip
这里的代码可以打印出电脑默认的DNS服务器
#pragmawarning(disable:4996)
#include<stdio.h>
#include<WinSock2.h>
#include<iphlpapi.h>
#pragmacomment(lib,"IPHLPAPI.lib")
#pragmacomment(lib,"ws2_32.lib")
intmain()//获取本地主机名、域名和DNS服务器信息
{
//声明变量
FIXED_INFO*FixedInfo;//定义保存本地计算机网络参数信息的结构体指针
ULONGulOutBufLen;//保存获取到的本地计算机网络参数信息结构体链表的长度
DWORDdwRetVal;//调用GetNetworkParams()函数的返回值
IP_ADDR_STRING*pIPAddr;//保存所有DNS服务器的IP地址列表
FixedInfo=(FIXED_INFO*)GlobalAlloc(GPTR,sizeof(FIXED_INFO));//为FixedInfo结构体分配内存空间
ulOutBufLen=sizeof(FIXED_INFO);//初始化ulOutBufLen变量值
//第1次调用GetNetworkParams()函数,获取返回结果的大小到ulOutBufLen中
if(ERROR_BUFFER_OVERFLOW==GetNetworkParams(FixedInfo,&ulOutBufLen))
{
GlobalFree(FixedInfo);
FixedInfo=(FIXED_INFO*)GlobalAlloc(GPTR,ulOutBufLen);
}
//第2次调用GetNetworkParams()函数,以前面获取的ulOutBufLen作为参数,
if(dwRetVal=GetNetworkParams(FixedInfo,&ulOutBufLen)!=ERROR_SUCCESS)
{
printf("调用GetNetworkParams()函数失败。返回值:%08x ",dwRetVal);
}
else
{
printf(" DNS服务器列表: ");
printf("%s ",FixedInfo->DnsServerList.IpAddress.String);
pIPAddr=FixedInfo->DnsServerList.Next;
while(pIPAddr)
{
printf(" %s ",pIPAddr->IpAddress.String);
pIPAddr=pIPAddr->Next;
}
}
printf("按下回车键结束 ");
getchar();
return0;
}
‘陆’ 如何只用C语言,通过域名得到IP地址
#include<stdio.h>//printf
#include<string.h>//memset
#include<stdlib.h>//forexit(0);
#include<sys/socket.h>
#include<errno.h>//Forerrno-theerrornumber
#include<netdb.h>//hostent
#include<arpa/inet.h>
inthostname_to_ip(char*,char*);
intmain(intargc,char*argv[])
{
if(argc<2)
{
printf("");
exit(1);
}
char*hostname=argv[1];
charip[100];
hostname_to_ip(hostname,ip);
printf("%sresolvedto%s",hostname,ip);
printf(" ");
}
/*
Getipfromdomainname
*/
inthostname_to_ip(char*hostname,char*ip)
{
structhostent*he;
structin_addr**addr_list;
inti;
if((he=gethostbyname(hostname))==NULL)
{
//getthehostinfo
herror("gethostbyname");
return1;
}
addr_list=(structin_addr**)he->h_addr_list;
for(i=0;addr_list[i]!=NULL;i++)
{
//Returnthefirstone;
strcpy(ip,inet_ntoa(*addr_list[i]));
return0;
}
return1;
}
‘柒’ 怎么用c或者c++代码获取默认DNS服务器的ip
#include<windows.h>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
system("ipconfig /all");//使用运行CMD.exe,并输入ipconfig /all,可得出本机所有物理地址信息(IP信息)
getchar();//获取记录信息
return 0;
}
‘捌’ 请问 C# 如何获取外网IP
本机是获取不到自己外网IP的,真的想要知道,你可以访问ip138这种网站,让这种网站获得你的IP再返回给你。有点儿像自己的眼睛是看不到自己长啥样,想要看得是镜子“获得”你的样子,然后再返还给你一样。
路由什么的是基于NAT的,根本不需要知道客户端的真实地址是什么,服务端地址固定住就好了。当客户端与服务端连接时(建立Sockets)经过路由,路由会NAT给客户端一个地址(包含IP和端口号两部分),服务端只需要往这个地址上发送信息,路由器识别你这个地址会自动转发给相应的真正的客户端的,这也就是路由的本身作用。
‘玖’ 怎么用C语言获取Linux系统的网卡IP地址
man exec 里面的函数可以用来执行命令
‘拾’ 编程:C语言编程取得本机ip地址
取本地地址
可以从“开始”-“程序”-“附件”-“命令提示符”里面输入英文“ipconfig/all”就可得到IP地址了,LINUX我也不太懂了。