zoukankan      html  css  js  c++  java
  • C语言实现查询whois

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <windows.h>
    
    int main()
    {
    	HANDLE handle;
    	FILE *fp;
    	FILE *foutput;
    	int i, j, k, l;
    	char szDomain[1024 * 4];
    	char szBuf[1024 * 4];
    	handle = GetStdHandle(STD_OUTPUT_HANDLE);
    
    	for (i = 'b'; i <= 'z'; i++)
    	{
    		for (j = 'c'; j <= 'z'; j++)
    		{
    			for (k = 'd'; k <= 'z'; k++)
    			{
    				for (l = 'a'; l <= 'z'; l++)
    				{
    					sprintf(szDomain, "whois.exe %c%c%c%c.cn", i, j, k, l);
    					fp = _popen(szDomain, "r");
    					if (fp)
    					{
    						memset(szBuf, 0, sizeof(szBuf));
    						fread(szBuf, 1, sizeof(szBuf), fp);
    						if (strstr(szBuf, "no matching record."))
    						{
    							SetConsoleTextAttribute(handle, FOREGROUND_GREEN |    
    															FOREGROUND_INTENSITY);
    							printf("%s
    ", szDomain);
    							SetConsoleTextAttribute(handle, FOREGROUND_RED |
    															FOREGROUND_GREEN |
    															FOREGROUND_BLUE);
    							printf("%s
    ", szBuf);
    							foutput = fopen("output.txt", "a+");
    							fprintf(foutput, "%s
    ", szDomain);
    							fclose(foutput);
    						}
    						else
    						{
    							printf("%s
    ", szDomain);
    							printf("%s
    ", szBuf);
    						}
    						_pclose(fp);
    						Sleep(1000);
    					}
    				}
    			}
    		}
    	}
    	return 0;
    }

    保存还未占用的域名


    乱码是由于cmd默认是gbk编码方式。

    修改方法:

    在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。 

     

    如果想正确显示UTF-8字符,可以按照以下步骤操作: 

    1、打开CMD.exe命令行窗口 

    2、通过 chcp命令改变代码页,UTF-8的代码页为65001 

    chcp 65001 

    执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。 

    3、修改窗口属性,改变字体 

    在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。 

    这时使用type命令就可以显示UTF-8文本文件的内容了: 

    type filename.txt 

    4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。

    chcp 65001  就是换成UTF-8代码页
    chcp 936 可以换回默认的GBK
    chcp 437 是美国英语 
    Keep it simple!
    作者:N3verL4nd
    知识共享,欢迎转载。
  • 相关阅读:
    linux下测试web访问及网络相关的命令
    linux下的数据备份工具rsync讲解
    Centos安装PHP PS:LAMP环境时,为少出错误,先安装一下编译环境
    Centos6.6安装MySQL5.6.24
    Centos6.6安装apache2.4
    bash_profile和bashrc区别
    Centos安装 Apache2.4提示 APR not found的解决办法
    ERROR 1010 (HY000): Error dropping database (can't rmdir './test/', errno: 17)
    MySQL ibdata1文件迁移
    Linux启动/停止/重启Mysql数据库的方法
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5834926.html
Copyright © 2011-2022 走看看