首页 > 其他分享 >new代码

new代码

时间:2023-11-08 16:25:23浏览次数:90  
标签:iResult return name 代码 printf new remoteHost addr

#include <WinSock2.h>
#include<ws2tcpip.h>
#include <stdio.h>
#include<windows.h>
#pragma comment(lib, "Ws2_32.lib")

struct hostent* FAR gethostbyname(
	const char *name
) ;

int WSAStartup(
   WORD      wVersionRequested,
   LPWSADATA lpWSAData
);

int WSACleanup(void);

int main(int argc, char **argv)
{
	//	调用 WSAStartup()函数,进行初始化操作 
	
	WSADATA wsaData;
	int iResult;
	DWORD dwError;
	int i = 0;
	struct hostent *remoteHost;
    char *host_name;
    struct in_addr addr;
    char **pAlias;
    if(argc != 2){
    	printf("usage: GetHostIP hostname\n");
    	return 1;
    }
    
	iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
	if (iResult != 0)
	{
		printf("WSAStartup failed: %d\n", iResult);
		return 1;
	}
	host_name = argv[1];
    printf("Calling gethostbyname with %s\n", host_name);
    remoteHost = gethostbyname(host_name);
    if(remoteHost == NULL){
        dwError = WSAGetLastError();
        if(dwError != 0){
            if(dwError == WSAHOST_NOT_FOUND){
                printf("No data record found\n");
                return 1;
            }else {
                printf("Function failed with error:%d\n", dwError);
                return 1;
            }
        }
    }
    else{
        printf("Function returned:\n");
        printf("\tOfficial name: %s\n", remoteHost->h_name);
        for(pAlias = remoteHost->h_aliases; *pAlias != 0;pAlias++){
            printf("\tAddress type: ");
            switch (remoteHost->h_addrtype){
                case AF_INET:
                    printf("AF_INET\n");
                    break;
                    case AF_NETBIOS:
                        printf("AF_NETBIOS\n");
                        break;
                        default:
                            printf("%d\n",remoteHost->h_addrtype);
                            break;
            }
            printf("\tAddress length:%d\n", remoteHost->h_length);
            i=0;
            if(remoteHost->h_addrtype == AF_INET){
                while(remoteHost->h_addr_list[i] != 0){
                    addr.s_addr = *(u_long *)remoteHost->h_addr_list[i++];
                    printf("\tIP Address #%d: %s\n",i, inet_ntoa(addr));
                }
            }
            else if(remoteHost->h_addrtype == AF_NETBIOS){
                printf("NETBIOS address was returned\n");
            }
        }
        return 0;
    }

	//	调用 WSACleanup()函数,注销程序,释放资源 
	iResult = WSACleanup();
	if (iResult != 0)
	{
		printf("WSACleanup failed: %d\n", iResult);
		return -1;
	}
	return 0;
}

  

标签:iResult,return,name,代码,printf,new,remoteHost,addr
From: https://www.cnblogs.com/JLPeng/p/17817649.html

相关文章

  • 解锁表单新操作!JVS低代码表单自定义按钮功能全解析
    在普通的表单设计中,虽然自带的【提交】、【重置】、【取消】按钮可以满足基本操作需求,但在面对更多复杂的业务场景时,这些按钮的显示控制就显得有些力不从心。为了更好地满足用户在表单操作过程中的个性化需求,JVS低代码推出了表单自定义按钮功能。这项功能不仅可以更灵活地操作表单......
  • 如何用R代码采集商铺出租转让信息
    今天我们来学习一个用R代码编写的采集商铺出租转让信息的爬虫程序,这个程序是一个粉丝写的,让我看看有没有问题,经过我的一些修改,现在已经可以成功运行了。一起学习一下吧。```r#安装rvest包install.packages("rvest")#加载rvest包library(rvest)#使用read_html函数获取网......
  • var str1=new RegExp("e"); document.write(str1.exec("hello")); 以上代码输出结果为
    varstr1=newRegExp("e");document.write(str1.exec("hello"));以上代码输出结果为eJavaScript高级程序设计上面的原话:RegExp对象的主要方法是exec(),该方法是专门为捕获组而设计的。exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没......
  • 使用 TortoiseGit 在两个项目之间共享代码(cherry-pick)
    需求:项目A需要新增项目B的部分代码,要求不变更commitmessage信息做法项目A新增上游Remote,RemoteURL为项目B的URL新增方式:依次点击项目A文件夹内右键→TortoiseGit→Settings→Git→Remote,输入上游名称和URL点击确定后,TortoiseGit会询问是否为其禁用T......
  • Codigger,你的代码安全卫士
    无论是开发新的应用程序还是维护现有的项目,保持代码质量始终是一个关键的挑战。项目管理者和开发人员需要可靠的工具,来帮助他们快速检测和评估项目的质量水平,以确保项目的成功交付。在这个领域,Codigger显示是一个不可缺失的强大伙伴。  助你全面分析Codigger项目体检是一项强大......
  • 调用API接口获取淘宝商品数据:详细指南与代码实践
    在电子商务领域,淘宝作为中国最大的电商平台之一,其商品数据量庞大且丰富。对于开发者来说,如何有效地获取并利用这些数据,是一个重要的问题。本文将详细介绍如何使用API接口来获取淘宝商品数据,包括请求方式、参数设置、数据处理等内容,并通过代码实践来加深理解。一、API接口简介API(App......
  • app直播源代码,css给数字或文字在鼠标悬停时添加下划线动画
    app直播源代码,css给数字或文字在鼠标悬停时添加下划线动画html代码: <h1 class="row center " style="font-size: 2em;">css给数字或文字在鼠标悬停时添加下划线动画</h1><div class="row center text"><span>春有百花秋望月</span>,<span>夏有冷风冬听雪</spa......
  • 代码搬运笔记
    1.多线程加速计算publicstaticintcount=0;publicstaticobjecto=newobject();privatestaticvoidCalculation(){    lock(o)//加锁    {        for(intj=0;j<10000000;j++)        {            count=cou......
  • IDEA插件分享:代码零入侵,后端神器
    今天给大家介绍一款好用的IDEA插件:Apipost-Helper-2.0。非常好用!主要包含以下功能:1、无侵入生成API文档编写完代码后,只需右键upload同步接口即可快速将源码中包含的API以及注解自动生成API文档,并生成可以访问的链接。无需任何额外操作。 2、快速调式(类似Postman)编写完代码......
  • kafka配置-代码配置篇
    KafkaProducerConfig@Configuration@EnableKafkapublicclassKafkaProducerConfig{/***ProducerTemplate配置*/@Bean(name="kafkaTemplate")publicKafkaTemplate<String,String>kafkaTemplate(){returnne......