您的位置:首页 > 运维架构 > Linux

linux下检测本机是否可以上网

2016-02-18 17:29 746 查看
首先,本机PC需是直连接网络,没有设置代理,代码如下:

#include<stdio.h>
#include<netdb.h>
#include<string.h>

#define PORT 80

int main()
{
struct hostent* host = NULL;
host = gethostbyname("www.baidu.com");
if(NULL == host)
{
printf("don't connect internet...");
return -1;
}
///定义sockfd
int sock_cli = -1;
sock_cli = socket(AF_INET,SOCK_STREAM, 0);

///定义sockaddr_in
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);  ///服务器端口
//servaddr.sin_addr.s_addr = inet_addr();  ///服务器ip
servaddr.sin_addr = *((struct in_addr *)host->h_addr);

///连接服务器,成功返回0,错误返回-1
if (connect(sock_cli, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)
{
perror("connect");
return -1;
}
else
{
printf("connect internet...");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: