1. 求一c语言大神在线帮我写一段程序‘’请编写程序实现根据主机名获得IP地址信息,并将信息保存在文件中‘’
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
using namespace std;
const char* dns_parse(const char* host) {
struct addrinfo hints;
struct addrinfo *result = NULL;
struct addrinfo *rp = NULL;
memset(&hints, 0, sizeof(struct addrinfo));
hints.ai_family = AF_UNSPEC; /* Allow any */
hints.ai_socktype = 0; /* Any */
hints.ai_flags = 0; /* No flags */
hints.ai_protocol = 0; /* Any protocol */
int error = getaddrinfo(host, NULL, &hints, &result);
if (error != 0) {
if (result) {
freeaddrinfo(result);
}
return "";
}
const char* ip = "";
const char* ipv6 = "";
const char* ipv4 = "";
char tmp[INET6_ADDRSTRLEN * 2] = {0};
for (rp = result; rp != NULL; rp = rp->ai_next) {
if (rp->ai_family == AF_INET && strlen(ipv4) == 0) {
const char *ret = inet_ntop(rp->ai_family,
&((struct sockaddr_in*)rp->ai_addr)->sin_addr,
tmp, (INET6_ADDRSTRLEN * 2));
if (ret != NULL) {
ipv4 = ret;
}
} else if (rp->ai_family == AF_INET6 && strlen(ipv6) == 0) {
const char *ret = inet_ntop(rp->ai_family,
&((struct sockaddr_in6*)rp->ai_addr)->sin6_addr,
tmp, (INET6_ADDRSTRLEN * 2));
if (ret != NULL) {
ipv6 = ret;
}
}
}
if (result) {
freeaddrinfo(result); // Not needed anymore
}
if (strlen(ipv6) > 0) {
ip = ipv6;
} else if (strlen(ipv4) > 0) {
ip = ipv4;
} else {
return "";
}
return ip;
}
void save_to_file(char* data, int len, const char* file_path) {
FILE *fp = fopen(file_path, "wb");
if (!fp) {
return;
}
fwrite(data, sizeof(char), len, fp);
fclose(fp);
}
int main() {
const char* ip = dns_parse("www..com");
printf("%s\n", ip);
int len = strlen(ip);
char* data = (char*)malloc(len + 1);
memcpy(data, ip, len);
data[len] = '\0';
save_to_file(data, len + 1, "a.txt");
free(data);
return 0;
}
2. c语言编程实现对电脑流量实时监测
监控包的发送和接收 然后做个界面 计算宽带和各种百分比 就行了
3. 写一个C语言程序: 能修改Linux 主机的IP、DHCP、DNS 等设置
可以调用system()函数。把linux系统命令拼成字符串,然后调用system去执行这个字符串就可以了。修改系统配置,需要root身份。
1、system函数:
原型:int
system(const
char
*
command);
功能:执行
dos(windows系统)
或
shell(Linux/Unix系统)
命令,参数字符串command为命令名;
说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;
头文件:stdlib.h;
返回值:命令执行成功返回0,执行失败返回-1。
2、例程:
#include<stdio.h>
#include<stdlib.h>
int main(){
system("del C:\\123.txt");//在控制台中,执行命令del C:\\123.txt,删除C盘目录下的123.txt文件
return 0;
}
4. 电脑C语言编程,求高手帮忙
1,源程序如下:
源程序如下:
#include<stdio.h>
int
main()
{
float
x,sum=0,avg=0,max,min;
int
i=1;
printf("请输入10个浮点型的数:\n");
scanf("%f",&x);
max=min=x;
while
(i<=9)
{
scanf("%f",&x);
sum=sum+x;
if
(x>max)
max=x;
else
min=x;
i=i+1;
}
avg=sum/10;
printf("和为:%.2f\n平均值为:%.2f\n最大值为:%.0f\n最小值为:%.0f\n",sum,avg,max,min);
return
0;
}
5. c语言 判断三个点是不是在一条直线上 在线等 点自定
#include"stdafx.h"
#include<stdio.h>
#include<math.h>
intmain()
{
floatx1,x2,x3,y1,y2,y3;
scanf("(%f,%f) ",&x1,&y1);
scanf("(%f,%f) ",&x2,&y2);
scanf("(%f,%f)",&x3,&y3);
if((y1-y2)/(x1-x2)==(y2-y3)/(x2-x3))
printf("在同一直线上。 ");
elseprintf("不在同一直线上。 ");
return0;
}
举例:输入
(1,2)
(2,4)
(4,8)
6. C语言脚本扫描出区域网内活动的主机
1、其实你可以写一个shell脚本,ping对方的主机,然后查看返回的结果($?)的值,就可以检测主机是否存活了。 2、或者你喜欢C语言的话,可以往网络编程那方面寻找答案,不过应该不难,只是我还没学到而已,暂时帮不了你。
7. 用C语言编程显示主机IP地址!
PcrazyC
-
高级经理
六级
的代码少调用了WSAStartup,没有对库进行初始化所以不会成功的.只要加上就没问题的了...BCHSHR说的库也要加进去才行...在CONSOLE模式和APPLICATION模式其实都是可以的...
8. 如何用C语言判断ip地址是否合法
可以试一下
#include<stdio.h>
intcheckIP(constchar*p)
{
intn[4];
charc[4];
if(sscanf(p,"%d%c%d%c%d%c%d%c",
&n[0],&c[0],&n[1],&c[1],
&n[2],&c[2],&n[3],&c[3])
==7)
{
inti;
for(i=0;i<3;++i)
if(c[i]!='.')
return0;
for(i=0;i<4;++i)
if(n[i]>255||n[i]<0)
return0;
return1;
}else
return0;
}
intmain()
{
constchar*x[]=
{
"192.168.1.1",
"10.0.0.1.",
"127.256.0.1",
"iugerjiogjioe",
"172.16,0.1",
0
};
constchar*m[]=
{
"不是合法的IP地址",
"是合法的IP地址"
};
inti=0;
while(x[i]!=0){
printf("%s%s ",x[i],m[checkIP(x[i])]);
++i;
}
return0;
}
9. C语言的定义问题 求大大帮忙
nRed是局部变量,没在main中定义。当然不能用。
10. 如何用C语言编程得到本地主机得IP和主机名
c语言本身是不提供的。
在windows下使用系统命令或windows.h
//列子
#include"stdio.h"
#include"conio.h"
main()
{
inti,j;
charip[20];
chartemp[100];
charch='