设置自动获取IP地址方法:
(1)右键“网络链接”选择“属性”打开网络连接管理界面。
(2)在打开的窗户中找到:Internet协议(TCP/IP) 双击打开或者单击选中,单击属性。
(3)选择自动获取IP地址和选择自动获取DNS服务器地址。
这次你说的比较详细了,如果都能PING通,即二层没问题,应该就是DHCP分配IP的问题,你把主机都设置成自动获取IP和DNS(7,8十块钱的SOHO路由如果用手工配IP总出问题),然后进入路由看DHCP设置的分配时间和地址池是不是都OK,在用IPCONFIG看看你的主机是否都获得内网的IP了,只要你选了自动获取IP基本不可能得不到(除非你用的是三层交换机,并配置上了非常NB的选择性的ACL)。对了,路由你用默认的设置,把自己配的什么静态路由和防火墙或者访问控制列表都关掉。
如果都获得了IP,并且路由能上公网,然后你有一个主机还上不去的话,可能就是它自己的防火墙设置有问题了,(或者你用的三层交换机被配上了非常NB的ACL)。
备注:局域网分配私有IP是很正常的,你的一个ADSL猫上只能让ISP分给你1个公网的IP,然后是在自己的路由上运行了一个叫PAT(过载的一种NAT)的地址转换,也就是用同一个公网IP的不同端口映射内网不同的私有IP,实现多个主机共享一个公网IP地址的一种技术。
#include <stdioh>
#include <stdlibh>
#include <unistdh>
#include <stringh>
#include <sys/socketh>
#include <netinet/inh>
#include <net/ifh>
#include <netdbh>
#include <arpa/ineth>
#include <sys/ioctlh>
//获取地址
//返回IP地址字符串
int getlocalip(char outip)
{
int i=0;
int sockfd;
struct ifconf ifconf;
char buf = (char)malloc(512);
struct ifreq ifreq;
char ip;
//初始化ifconf
ifconfifc_len = 512;
ifconfifc_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 = ifconfifc_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,"127001", 3)==0) //排除127xxx,继续下一个
{
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;
}
电脑用无线网卡查看ip地址的方法:
点击电脑开始图标,点击设置。
进入设置界面,点击网络与internet。
进入网络与internet界面,点击网络与共享中心。
点击更改适配器设置。
看到本地的网络连接,单击鼠标右键,点击状态。
进入状态界面,点击详细信息。
可以看到电脑的IP地址了。
以上就是关于如何自动获取ip地址全部的内容,包括:如何自动获取ip地址、网卡获取私有IP地址,怎么解决、怎么用C语言获取Linux系统的网卡IP地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)