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='