精华内容
下载资源
问答
  • 请问怎么获取对方IP地址? 继续阅读《请问怎么获取对方IP地址》的全文内容... 转载于:https://www.cnblogs.com/delphi2007/archive/2009/05/26/1490271.html

    请问怎么获取对方IP地址?

    继续阅读《请问怎么获取对方IP地址》的全文内容...

    转载于:https://www.cnblogs.com/delphi2007/archive/2009/05/26/1490271.html

    展开全文
  • 获取对方真实IP

    2010-08-31 11:12:00
    在棋牌游戏里,比如斗地主,怎么获取另两个人的真实IP地址,能做的联系本人,QQ751984,价格好说

    在棋牌游戏里,比如斗地主,怎么获取另两个人的真实IP地址,能做的联系本人,QQ751984,价格好说

    展开全文
  • 之前在做项目的时候主机IP地址、网关、DNS、子网掩码等都是公司或者对方直接给提供的,但是如果我们自己想搭建一台虚拟机或者一台集群的话,手头又没有IP地址,该肿么办呢?白慌,这里介绍一个小技巧,亲测是好使的...

    cc8dc2ca54d174f8697e69ca0f3995fa.png

    之前在做项目的时候主机IP地址、网关、DNS、子网掩码等都是公司或者对方直接给提供的,但是如果我们自己想搭建一台虚拟机或者一台集群的话,手头又没有IP地址,该肿么办呢?

    ce12f769add61feac0939138eb6fd626.png

    白慌,这里介绍一个小技巧,亲测是好使的,给大家分享一下。

    首先,保证你的虚拟机或者服务器安装好了系统,这里以CentOS6.7版本进行说明,具体的操作教程如下。

    1、当我们创建好虚拟机之后,直接在命令行中输入命令查看IP地址,得到的往往如下图所示,即便是你怎么调整NAT模式亦或是桥接模式,不会起到太大的作用。

    0bd5d32d6a8b917a8bff9a8f67de7fee.png

    2、此时就需要更改虚拟机的网络配置文件,在CentOS6.7中,该网络配置文件在/etc/sysconfig/network-scripts/ifcfg-eth0里边,具体内容如下图所示。

    5f6c41bd8e96e39e0e98ade6dd981174.png

    3、需要改动的地方只有一个,你没有看错,就只有一个,只需将ONBOOT的值由之前的“no”改为现在的“yes”即可,如下图所示,而且wq保存退出即可。

    fab33df63fcb20670e94a2f85e111a1a.png

    4、可以通过cat命令查看文件内容是否更改成功,如下图所示。

    9ce9db5929c61824f65a2fa174af60bd.png

    5、关闭防火墙,如下图所示。

    82c1abc42357ec7e85e9db7145a009a3.png

    6、之后重启网络,“service netwowrk restart”即可,如下图所示。

    d440b3090d68b43cf8f9a5431fa110c6.png

    7、之后再次输入“ifconfig -a”查看IP地址的命令,便可以看到此时虚拟机已经自动获取到IP了,如下图所示。

    32e86ba2315f9ae6b1ca15646ab2122f.png

    8、并且该IP还可以ping通互联网,如下图所示。

    66ca35d9e2a1fa4ad3c95cd89c475639.png

    如此一来,我们就可以顺利的获取IP地址,可以继续我们后续的操作,如搭建分布式、CDH集群等操作了。

    展开全文
  • 一个方法就是接收方创建一个socket监听一个端口,发送方通过广播的方式给所有局域网内的主机发送一个“hello”包,当然这个包是发往接收方监听的端口的,接收方接收到“hello”包后获取自己的ip地址然后封装在数据报...

    引言

    在进行网络程序的设计时,有时候我们不想要手动指定接收方的ip尤其是在做聊天小程序的时候,因为这个时候对方的ip不是固定的,那么我们该怎么办呢?一个方法就是接收方创建一个socket监听一个端口,发送方通过广播的方式给所有局域网内的主机发送一个“hello”包,当然这个包是发往接收方监听的端口的,接收方接收到“hello”包后获取自己的ip地址然后封装在数据报里再发回给发送方,这样发送方就能获得局域网内所有在线的接收方的信息了!


    但这个过程有几个问题要考虑。第一点,如果接收方有多个网卡,我怎么知道“hello”包是通过哪个网卡接收的呢?第二点,在接收方我可以用监听那个广播端口的socket来发送消息嘛?

    对于第一点,也是苦恼了我很久的问题,最终找到了方法:getsockname,这个函数可以根据addr来得到ip地址,用C语言学习网络编程的都知道接收函数是有一个sockaddr_in结构体来接收发送方的ip和端口信息的,而这个函数就是根据这个结构体来解析的,但是这个函数有一个条件是一定要在连接的情况下才能获取本地ip地址,不过也对,连接了,网卡一定也就确定了。既然要连接那反正udp套接字也可以connect,我们多写一点就是了。

    对于第二点,答案是不可以,因为我也尝试了这样的做法,在发送方接收到的ip消息会出现乱码的情况。所以在发送方和接收方都要多创建一个用于传送该消息的socket。总体来说就是,发送方和接收方都要有一个socket用来广播"hello"包和接收"hello"包,并且还都要有一个udp socket来发送udp消息和接收udp消息。


    话不多说,上代码

    //发送方--广播“hello”包然后接收接收方发送的ip消息
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <WinSock2.h>
    #pragma comment (lib,"ws2_32.lib")
     
    #define BUF_SIZE 100
    void error_handling(const char* message);
     
    int main(int argc,char* argv[])
    {
    	WSADATA wsadata;
    	if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0)
    		error_handling("wsastartup error!");
     
    	if (argc != 2) {
    		printf("usage: %s <port>\n", argv[0]);
    		exit(1);
    	}
     
    	SOCKET send_sock,recv_sock;
    	SOCKADDR_IN broad_adr;
    	char send_msg[BUF_SIZE]="hello,world",rec_msg[BUF_SIZE];;
    	int so_brd = 1;
    	//创建send_sock并与广播地址进行关联
    	send_sock = socket(PF_INET,SOCK_DGRAM,0);
    	if (send_sock == INVALID_SOCKET)
    		error_handling("send_sock error!");
    	memset(&broad_adr,0,sizeof(broad_adr));
    	broad_adr.sin_family = AF_INET;
    	broad_adr.sin_addr.s_addr = htonl(INADDR_BROADCAST);
    	broad_adr.sin_port = htons(atoi(argv[1]));
    	//设置广播选项
    	int getinfo = setsockopt(send_sock,SOL_SOCKET,SO_BROADCAST,(const char*)&so_brd,sizeof(so_brd));
    	if (getinfo == SOCKET_ERROR) 
    		error_handling("setsockopt error!");
    	printf("setsockopt has done\n");
     
    	//创建recv_sock并与本地地址进行绑定
    	recv_sock = socket(PF_INET, SOCK_DGRAM, 0);
    	if (recv_sock == INVALID_SOCKET)
    		error_handling("recv_sock error!");
    	struct sockaddr_in myadr, youradr;
    	memset(&myadr, 0, sizeof(myadr));
    	myadr.sin_family = AF_INET;
    	myadr.sin_addr.s_addr = htonl(INADDR_ANY);
    	myadr.sin_port = htons(10244);
    	if (bind(recv_sock, (struct sockaddr*)&myadr, sizeof(myadr)) == SOCKET_ERROR)
    		error_handling("bind error!");
    	else printf("bind has done\n");
    	
    	//发送helloworld消息
    	int send_len;
    	send_len = sendto(send_sock,send_msg,strlen(send_msg),0,(SOCKADDR*)&broad_adr,sizeof(broad_adr));
    	if(send_len == -1)
    		error_handling("sendto error!");
    	else printf("sendto has done\n");
    	closesocket(send_sock); //发送完后关闭发送的socket
    	
    	//接收来自receive.cpp运行端的ip消息并输出ip
    	int yadr_sz = sizeof(youradr);
     
    	int recv_len = recvfrom(recv_sock, rec_msg, BUF_SIZE, 0, (SOCKADDR*)&youradr, &yadr_sz);
    	if (recv_len == -1)
    		error_handling("recvfrom error!");
    	else {
    		printf("%s\n", rec_msg);
    	}
     
    	closesocket(recv_sock);
     
    	WSACleanup();
    	return 0;
    } 
     
    void error_handling(const char* message)
    {
    	printf("%s\n", message);
    	exit(1);
    }
    //发送方接收到“hello”包后获取本机ip地址然后封装到udp数据报里发送
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <WinSock2.h>
    #include <WS2tcpip.h>
    #pragma comment (lib,"ws2_32.lib")
    #define BUF_SIZE 100
    void error_handling(const char* message);
     
    int main(int argc, char* argv[])
    {
    	WSADATA wsadata;
    	if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0)
    		error_handling("wsastartup error!");
     
    	if (argc != 2) {
    		printf("usage: %s <port>\n", argv[0]);
    		exit(1);
    	}
     
    	char 	rec_msg[BUF_SIZE],send_msg[BUF_SIZE] = "the receiver ip is ";
    	SOCKET send_sock,recv_sock;
     
    	send_sock = socket(PF_INET, SOCK_DGRAM, 0);
    	if (send_sock == INVALID_SOCKET)
    		error_handling("send_sock error!");
     
    	recv_sock = socket(PF_INET, SOCK_DGRAM, 0);
    	if(recv_sock == INVALID_SOCKET)
    		error_handling("recv_sock error!");
    		
    	SOCKADDR_IN adr,youradr;
    	//set adr
    	memset(&adr, 0, sizeof(adr));
    	adr.sin_family = AF_INET;
    	adr.sin_addr.s_addr = htonl(INADDR_ANY);
    	adr.sin_port = htons(atoi(argv[1]));
    	//bind socket and adr
    	if (bind(recv_sock,(SOCKADDR*)&adr,sizeof(adr)) == -1)
    		error_handling("bind error!");
    	else printf("bind has done\n");
    	//receive message
    	int your_adr_sz = sizeof(youradr);
    	int strlen = recvfrom(recv_sock, rec_msg, BUF_SIZE, 0, (SOCKADDR*)&youradr, &your_adr_sz);
    	if (strlen == -1)
    		error_handling("recvfrom error!");
    	else {
    		//输出接收到的消息和发送端的ip地址
    		char* ip = inet_ntoa(youradr.sin_addr);
    		printf("the message from sender: %s\n", rec_msg);
    		printf("the sender ip is : %s\n", ip);
    		
    		//与发送端建立连接,通过getsockname得到自己的ip地址,将自己的ip地址发送给发送端
    		//getsockname函数要在连接时才能得到本地ip地址,所以要先connect
    		//另外要注意在发送端的接收socket的端口设定在10244,所以在这里也要改下
    		youradr.sin_port = htons(10244);
    		int con = connect(send_sock, (SOCKADDR*)&youradr, your_adr_sz);
    		if (con == 0)
    			printf("connect has done\n");
    		else error_handling("connect error!");
    		SOCKADDR_IN myaddr;
    		int sz = sizeof(myaddr);
    		int ret = getsockname(send_sock, (SOCKADDR*)&myaddr, &sz); //得到我自己的IP地址
    		if (ret != 0)
    			error_handling("getsockname error!");
    		printf("my ip is %s", inet_ntoa(myaddr.sin_addr));
     
    		char temp[BUF_SIZE];
    		char *myip = inet_ntoa(myaddr.sin_addr);
    		strcpy(temp, myip);
    		strncat(send_msg, temp, ::strlen(temp)); //这里strlen前面加::是因为我前面有一个strlen变量重名了
    		int sendmsg_sz = ::strlen(send_msg);
    		send_msg[sendmsg_sz] = '\0';
    		sendmsg_sz++;
    		//printf("send_msg:%s\n", send_msg);
    		int sendlen = send(send_sock,send_msg,sendmsg_sz,0);
    		if (sendlen == -1)
    			error_handling("sendto error!");
    		else printf("send has done\n");
    	}
    	closesocket(send_sock);
    	closesocket(recv_sock);
    	WSACleanup();
    	return 0;
    }
     
    void error_handling(const char* message)
    {
    	printf("%s\n", message);
    	exit(1);
    }

    以下是在虚拟机上调试的结果:

    展开全文
  • 如何获取ADSL的IP地址

    2010-10-11 15:11:00
    数据库字段是不是有问题 ,还有编码什么的 应该没问题,问题是只要是对方是固定IP就不会出现插进去不一样的问题,我快疯了 你先获取IP然后立即输出看对不对再说。 如果对了,再想插入数据是否...
  • 出现IP地址冲突时,通过arp -a命令,可以看到冲突对方的MAC地址。如下图:你就可以根据这个MAC地址去找到这台冲突的电脑,再进行后续的处理啦。小伙伴们要说,每次都这么找太麻烦啦。那么局域网发现IP地址冲突应该...
  • 步骤需求:(1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中(2)将这个txt文件发送给指定的...怎么获取网址(url)和访问时间?答:路径:/Users/用户名/Library/Application...
  • IP地址冲突怎么解决

    2019-09-18 06:06:51
    出现IP地址冲突时,通过arp -a命令,可以看到冲突对方的MAC地址。如下图:你就可以根据这个MAC地址去找到这台冲突的电脑,再进行后续的处理啦。小伙伴们要说,每次都这么找太麻烦啦。那么局域网发现IP地址冲突应...
  • 想要知道对方的位置,首先你要知道她的IP地址,百度一下“获取对方的IP地址”会出现一堆的教程,在这里我就不说那些乱七八糟和那些复杂的方法了,我就讲一下简单实用的方法!首先,我们可以借助一个网站获取她的IP...
  • 加了通过 NETBIOS取对方机器名的功能,随便对方怎么改变 IP 都可以轻 易识别出对方。对追捕进行大量修改,如果不出意外应该彻底修正了原来 的一些问题,增加了对主机服务版本的检查,功能增加多多这个版本为ZIP ...
  • 客户端获取数据方法

    2013-01-14 13:39:54
    数据就是一个数据服务公司的本命钱,如果对方不开放接口那就是没有,所以说,对方不开放图片检索的接口给你,你怎么弄都没用。这个需要你和数据服务公司商谈。 获得服务器地址之后,我向服务器请求数据,服务器...
  • 通常黑客在决定“攻击”之前,会通过各种渠道、各种手段获取对方主机的信息,从而规划自己的下一步行动,达到预期目的。一般来说,黑客最常用的方法是获取ip。 Ip可以简单理解为在互联网地址上网的用户的身份证。这...
  • 我租了个腾讯云服务器 ,需要生成一个app的下载地址,就是把链接发给别人对方点一下就能下载的那种....请问怎么弄...求详细点 我是小白 貌似从微云,百度云获取到的直接下载链接 一两天就失效了.........有没有什么网站...
  • w 发现阶段:获取对方的以太网地址,以确定唯一的PPPoE的会话 使用PADI、PADO、PADR、PADS报文 w 会话阶段:PPP协商阶段(LCP)/PPP报文传输阶段(NCP) 和PPP协商的方式一样,分为LCP、认证、NCP三个阶段。协商...
  • 还有实现设备间的信息互通,可能需要中继TURN服务器,因为可能因为对方的防火墙和NAT和限制了(隐藏了IP地址或者)用于通信的洞,所以只好在通话的时候进行ICE协商。就是发起者这边发了一个offer,有关怎么找到要准备...
  • //((SOCKADDR*)&remoteAddr)一个指向sockaddr_in结构的指针,用于获取对方地址 sClient = ::accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen); if(sClient == INVALID_SOCKET) { printf("Failed ...
  • arp协议及运用

    2016-09-21 19:44:05
    Arp协议和Arp欺骗今天更深入了解网络的传输的...但是在两台计算机建立连接之前,只知道对方的IP地址,那么要怎么获取对方的MAC地址呢?这时就要先发一个ARP数据包,来获取对方的MAC地址地址解析协议,即ARP(A...
  • arp协议-----》获取目标mac,怎么获取???通过ip地址找到mac地址 前提:在一个局域网LAN内,靠的是目标mac地址找到对方在哪里,即只要目标mac地址是谁,数据包就送给谁 情况一: 计算机1 192.168.10.11/...
  • ARP协议,同一网段,不同网段的详细通信流程

    万次阅读 多人点赞 2017-05-28 23:34:57
    网络通信需要知道对方主机的ip地址,但是ip只存在于协议的第三层,而实际发送数据到网络上的另一台主机是由物理层负责的,那在物理层怎么把数据传递给对方,需要用MAC地址, MAC地址指什么呢? 计算机是通过网卡...
  • getpeername()函数

    千次阅读 2017-09-02 12:45:34
    学unix网络编程时看到这个函数,我百度了一下,先看看百度怎么解释的:获取socket的对方地址。简单明了,accept函数也有这个功能,看代码吧。 [mapan@localhost TCP]$ ls client.cpp makefile server.cpp [mapan@...
  • 我们上网只是输入的网址,并不是IP地址怎么就能找到对方主机并获取它的数据呢?因此我们推测存在某种机制,将网址解析成为了IP地址,再通过IP地址进行通信。 1.1 什么是网址 网址:也叫做域名,又称URL,是互联网...
  • Linux--ARP协议与CRC校验

    2017-07-18 10:09:24
    通信前提两台主机要进行通信,那么首先要知道对方的MAC地址,但是怎么才能知道堆放的MAC呢?这里就要用到我们的ARP协议了。主机发送信息的时候将包含目标主机IP的ARP请求通过广播发送到网络上的所有的主机,等待接受...
  • 上一节我已经讲过怎么获取自己和网站的ip地址  这一节我们讲一下获取他人的ip: ·方法一 大言不惭的去问:哥们你ip多少,明天我入侵你。。。。。 对方基本上会说:ip?ip是什么? 、、、、(活跃下气氛) ·方法二...
  • 第四天 how can I 坚持

    2015-04-05 23:52:00
    今天在外边玩了一天,昨天晚上发完博客把servlet修改了下,前端加了一个后台提交的功能,统计访问量加获取访问IP地址,理论上可以间接判断对方是否读了你发的消息,前提是对方得打开网站,而且你必须要有个域名。...
  • 工厂后台设置 appid、secret、微信支付商户号和秘钥时候的 token 怎么填? 不要填! 不要填! 不要填! 重要的事情说三遍,这个小程序用不到,是给服务号使用的,所以大家空着不要填 微信支付时候,提示 50000 ...
  • 关键代码如下:在一个while循环中每循环一次 取得 一个url地址,然后 根据 这个url地址进行 查询,我每一次查询 都启用一个线程。 while (it.hasNext()){ linkedListCell=null; foo = (Element) it.next(); ...
  • //返回客户端(即对方)的IP地址和端口 SOCKET ComSock = accept(pChatClient->ListenSock, (struct sockaddr*)&ClientSocket, &len); if (ComSock == INVALID_SOCKET) { //若没有收到信息 ...
  • 可靠的Windows版Redis-教你怎么解决64位Windows版Redis狂占C盘的问题 Oracle中 SQL 执行太慢的元凶: OR Windows下载安装JDK【废弃】 小伙伴书三生 2014年 排斥所有液体的新型超疏水纳米材料 20纳米DDR4内存 ...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

怎么获取对方地址