当前位置:首页 » 操作系统 » ping源码

ping源码

发布时间: 2022-02-04 03:30:45

① 易语言 端口ping显延迟 持续ping 源码 如图

这个实现应该不难 (我没做过)
就是请求访问网站,然后有个等待时间,那个就是ping
你也可以试一下系统自带cmd 输入:ping www..com回车
然后会显示一些信息 包括延迟
实时显示有点难度 毕竟请求访问时本身就存在着延迟
易语言的话你可以用一个时钟
时钟里面的代码大概就是如同CMD一样ping你输入的网站,然后返回延迟的时间,就是你想要的ping值
(不太懂这方面,有说错的地方见谅)

② 求 并发ping 实现的源码程序!!!

cmd中ping+IP地址是用来向对方主机发送默认大小为32字节的数据,一般是用来看你电脑能不能连到这个IP,或者说看你的延迟,貌似没有对别的电脑实现远程控制的功能……

③ 如何得到本机ping命令源代码

一个按扭,一个文本,运行结果到C盘的1.TXT里看看privatesubcommand1_Click()Shell"Cmd.exe/cping"&text1.text&">C:\1.txt",vbHideendsub

④ ping查网速的代码是多少

ping 的是网络延迟 也就是你要访 问的目标网站与你的电脑对接的延迟, 一般的咱都ping的是网关,联通的 221.6.4.66 221.6.4.67 还有ping自己的路由器 192.168.1.1或者192.168.0.1
后面的-t是取消时间限制 如果不加-t 那么你的ping结果只显示5秒钟左右就自动关掉了

⑤ ping编写的代码ping功能

DimpidAsLong
pid=Shell("cmd.exe/CPing"&Text1.Text&">c: .txt",vbHide)
'提示
Text2.Text="正在执行Ping"&Text1.Text&"..."
'等待Shell执行结束
DimhProcAsLong
hProc=OpenProcess(PROCESS_QUERY_INFORMATION,0,pid)
DimExitCodeAsLong
Do
CallGetExitCodeProcess(hProc,ExitCode)
DoEvents
LoopWhileExitCode=STILL_ALIVE
'清空,准备显示结果
Text2.Text=""

'打开C: .txt文件
Open"c: .txt"ForInputAs#1
DimstrLineAsString
DoUntilEOF(1)
LineInput#1,strLine
'显示执行结果
Text2.Text=Text2.Text&strLine&vbNewLine
Loop

'关闭文件
Close#1
'删除C: .txt
OnErrorResumeNext
Kill"c: .txt"

⑥ ping攻击代码

=^0^=死亡之Ping =^0^=
Ping是一个测试网路是否接通的指令,基本使用方法如下:
首先开启DOS,方法是:
Windows 95/98 开始→程式集→MS-DOS 模式
Windows NT/2000 开始→程式集→命令提示字符
Windows ME 开始→程式集→附属应用程式→MS-DOS 模式
Windows XP 开始→程式集→附属应用程式→命令提示字符

然后输入:
Ping www.xxx.com (xxx为自选服务器)
表示测试本机与xxx网站的连结。
结果如下(只列出部分):
Pinging www.xxx.com[---.---.---.--] with 32 bytes of data:
Reply from ---.---.---.--: bytes=32 time=168ms TTL=--
Reply from ---.---.---.--: bytes=32 time=167ms TTL=--
Reply from ---.---.---.--: bytes=32 time=167ms TTL=--
Reply from ---.---.---.--: bytes=32 time=168ms TTL=--

Pinging statistics for ---.---.---.--
Packets: sent=4 , Recieved=4 , Lost=0 (0% Lost)
........

Pinging www.xxx.com[---.---.---.--]<--服务器端IP,为四组数字
with 32 bytes of data:<--资料包大小
现在请输入Ping -l 20000 -s 4 www.xxx.com 表示使用20000位元组的资料包传送4次到www.xxx.com。

在此笔者解释一下死亡之Ping的运作原理。根据IP规定(RFC-791),大于65535位元组(即64KB)的封包,是不合符标准的。对于一些旧式的作业系统,例如Unix、Windows 3.1、Mac、Netware等,它们并不懂得检查及阻挡这些封包。系统默认了所有封包也是合法的。由于缓冲区大小只是65535位元组,于是便会发生缓冲区溢出的错误(即是缓冲区大小并不足够接收封包)。系统便会即是当机。

这是一种DoS(Denial of Service)的攻击。攻击并不是为了窃取电脑上的资料,只是要令别人的电脑瘫痪而己。而威力更强的DDoS(Distributed Denial of Service)则是多人一起使用DoS攻击同一目标。

本文介绍的炸机方式效率很低,而且失败机会高,只适用于旧式以及没防范攻击的电脑,所以黑客们也很少使用它。另外若您安装了Windows NT/2000 Service Pack 1或以上,作业系统限制了Ping的封包的大小上限为8000位元组,亦即是说不能使用这种炸机方式攻击别人。

⑦ 这个易语言ping源码 谁能给下 谢谢啦 就是把IP地址输入 下面返回 PING的值。 代码不知道怎么写。

.版本 2
.如果 (编辑框1.内容 ≠ “”)
运行 (“cmd /c ping ” + 编辑框1.内容 + “-t” + “ >c:\ping.txt”, 真, #隐藏窗口)
编辑框2.内容 = 到文本 (读入文件 (“c:\ping.txt”))
删除文件 (“c:\ping.txt”)
.否则
.如果结束
是用CMD的保存文件。读取CMD的保存文件。原理就是这样

linux源码里有ping源码吗

要看你是看tcp/ip协议栈的代码还是用户态的代码,我猜你是要看ping 这个程序的代码
rpm -qf `which ping`
找到ping属于哪个软件包,下载软件包的源代码就可以看了

⑨ 求windows下ping程序c源代码,模拟的ping也行,能编译通过就行,网上很多通不过

#pragma pack(4)
#define WIN32_LEAN_AND_MEAN
#include
#include
#include
#define ICMP_ECHO 8
#define ICMP_ECHOREPLY 0
#define ICMP_MIN 8 // minimum 8 byte icmp packet (just header)
/* The IP header */
typedef struct iphdr {
unsigned int h_len:4; // length of the header
unsigned int version:4; // Version of IP
unsigned char tos; // Type of service
unsigned short total_len; // total length of the packet
unsigned short ident; // unique identifier
unsigned short frag_and_flags; // flags
unsigned char ttl;
unsigned char proto; // protocol (TCP, UDP etc)
unsigned short checksum; // IP checksum
unsigned int sourceIP;
unsigned int destIP;
}IpHeader;
//
// ICMP header
//
typedef struct _ihdr {
BYTE i_type;
BYTE i_code; /* type sub code */
USHORT i_cksum;
USHORT i_id;
USHORT i_seq;
/* This is not the std header, but we reserve space for time */
ULONG timestamp;
}IcmpHeader;
#define STATUS_FAILED 0xFFFF
#define DEF_PACKET_SIZE 32
#define MAX_PACKET 1024
#define xmalloc(s) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,(s))
#define xfree(p) HeapFree (GetProcessHeap(),0,(p))
void fill_icmp_data(char *, int);
USHORT checksum(USHORT *, int);
void decode_resp(char *,int ,struct sockaddr_in *);
void Usage(char *progname){
fprintf(stderr,"Usage: ");
fprintf(stderr,"%s [data_size] ",progname);
fprintf(stderr,"datasize can be up to 1Kb ");
ExitProcess(STATUS_FAILED);
}
int main(int argc, char **argv){
WSADATA wsaData;
SOCKET sockRaw;
struct sockaddr_in dest,from;
struct hostent * hp;
int bread,datasize;
int fromlen = sizeof(from);
int timeout = 1000;
char *dest_ip;
char *icmp_data;
char *recvbuf;
unsigned int addr=0;
USHORT seq_no = 0;
if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0){
fprintf(stderr,"WSAStartup failed: %d ",GetLastError());
ExitProcess(STATUS_FAILED);
}
if (argc <2 ) {
Usage(argv[0]);
}
sockRaw = WSASocket (AF_INET,
SOCK_RAW,
IPPROTO_ICMP,
NULL, 0,0);
if (sockRaw == INVALID_SOCKET) {
fprintf(stderr,"WSASocket() failed: %d ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
bread = setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,
sizeof(timeout));
if(bread == SOCKET_ERROR) {
fprintf(stderr,"failed to set recv timeout: %d ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
timeout = 1000;
bread = setsockopt(sockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,
sizeof(timeout));
if(bread == SOCKET_ERROR) {
fprintf(stderr,"failed to set send timeout: %d ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
memset(&dest,0,sizeof(dest));
hp = gethostbyname(argv[1]);
if (!hp){
addr = inet_addr(argv[1]);
}
if ((!hp) && (addr == INADDR_NONE) ) {
fprintf(stderr,"Unable to resolve %s ",argv[1]);
ExitProcess(STATUS_FAILED);
}
if (hp != NULL)
memcpy(&(dest.sin_addr),hp->h_addr,hp->h_length);
else
dest.sin_addr.s_addr = addr;
if (hp)
dest.sin_family = hp->h_addrtype;
else
dest.sin_family = AF_INET;
dest_ip = inet_ntoa(dest.sin_addr);
if (argc >2) {
datasize = atoi(argv[2]);
if (datasize == 0)
datasize = DEF_PACKET_SIZE;
}
else
datasize = DEF_PACKET_SIZE;
datasize += sizeof(IcmpHeader);
icmp_data = xmalloc(MAX_PACKET);
recvbuf = xmalloc(MAX_PACKET);
if (!icmp_data) {
fprintf(stderr,"HeapAlloc failed %d ",GetLastError());
ExitProcess(STATUS_FAILED);
}
memset(icmp_data,0,MAX_PACKET);
fill_icmp_data(icmp_data,datasize);
while(1) {
int bwrote;
((IcmpHeader*)icmp_data)->i_cksum = 0;
((IcmpHeader*)icmp_data)->timestamp = GetTickCount();
((IcmpHeader*)icmp_data)->i_seq = seq_no++;
((IcmpHeader*)icmp_data)->i_cksum = checksum((USHORT*)icmp_data,
datasize);
bwrote = sendto(sockRaw,icmp_data,datasize,0,(struct sockaddr*)&dest,
sizeof(dest));
if (bwrote == SOCKET_ERROR){
if (WSAGetLastError() == WSAETIMEDOUT) {
printf("timed out ");
continue;
}
fprintf(stderr,"sendto failed: %d ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
if (bwrote < datasize ) {
fprintf(stdout,"Wrote %d bytes ",bwrote);
}
bread = recvfrom(sockRaw,recvbuf,MAX_PACKET,0,(struct sockaddr*)&from,
&fromlen);
if (bread == SOCKET_ERROR){
if (WSAGetLastError() == WSAETIMEDOUT) {
printf("timed out ");
continue;
}
fprintf(stderr,"recvfrom failed: %d ",WSAGetLastError());
ExitProcess(STATUS_FAILED);
}
decode_resp(recvbuf,bread,&from);
Sleep(1000);
}
return 0;
}
/*
The response is an IP packet. We must decode the IP header to locate
the ICMP data
*/
void decode_resp(char *buf, int bytes,struct sockaddr_in *from) {
IpHeader *iphdr;
IcmpHeader *icmphdr;
unsigned short iphdrlen;
iphdr = (IpHeader *)buf;
iphdrlen = iphdr->h_len * 4 ; // number of 32-bit words *4 = bytes
if (bytes < iphdrlen + ICMP_MIN) {
printf("Too few bytes from %s ",inet_ntoa(from->sin_addr));
}
icmphdr = (IcmpHeader*)(buf + iphdrlen);
if (icmphdr->i_type != ICMP_ECHOREPLY) {
fprintf(stderr,"non-echo type %d recvd ",icmphdr->i_type);
return;
}
if (icmphdr->i_id != (USHORT)GetCurrentProcessId()) {
fprintf(stderr,"someone else's packet! ");
return ;
}
printf("%d bytes from %s:",bytes, inet_ntoa(from->sin_addr));
printf(" icmp_seq = %d. ",icmphdr->i_seq);
printf(" time: %d ms ",GetTickCount()-icmphdr->timestamp);
printf(" ");
}
USHORT checksum(USHORT *buffer, int size) {
unsigned long cksum=0;
while(size >1) {
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size ) {
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
/*
Helper function to fill in various stuff in our ICMP request.
*/
void fill_icmp_data(char * icmp_data, int datasize){
IcmpHeader *icmp_hdr;
char *datapart;
icmp_hdr = (IcmpHeader*)icmp_data;
icmp_hdr->i_type = ICMP_ECHO;
icmp_hdr->i_code = 0;
icmp_hdr->i_id = (USHORT)GetCurrentProcessId();
icmp_hdr->i_cksum = 0;
icmp_hdr->i_seq = 0;
datapart = icmp_data + sizeof(IcmpHeader);
//
// Place some junk in the buffer.
//
memset(datapart,'E', datasize - sizeof(IcmpHeader));
}

估计你也试过,网上搜到的。

⑩ 易语言ping ip源码

运行 (“cmd /C ” + “ping www..com” + “ >” + #引号 + 取运行目录 () + “\1.txt”, 真, 1)
编辑框1.内容 = 到文本 (读入文件 (取运行目录 () + “\1.txt”))

热点内容
做脚本挂 发布:2024-05-02 19:09:14 浏览:930
打王者开最高配置哪个手机好 发布:2024-05-02 19:08:31 浏览:350
python字典使用 发布:2024-05-02 19:01:14 浏览:134
我的世界服务器联机ip 发布:2024-05-02 18:50:39 浏览:619
steam密码从哪里看 发布:2024-05-02 18:50:00 浏览:629
convertlinux 发布:2024-05-02 18:20:00 浏览:705
zxingandroid简化 发布:2024-05-02 17:47:53 浏览:189
贵州银行卡查询密码是什么 发布:2024-05-02 17:47:17 浏览:119
飓风算法没用 发布:2024-05-02 17:41:41 浏览:350
android铃声设置 发布:2024-05-02 17:40:01 浏览:485