当前位置:  技术问答>linux和unix

为什么这个unix 版的ping 在 linux下编译无法通过?

    来源: 互联网  发布时间:2015-03-30

    本文导语:  为什么这个unix 版的ping 在 linux下编译无法通过? 出现了几百行各式各样的错误! 大家给在linux下编译一下吧,到底怎么回事啊? /* PING.C /* /* ping source code distribute by cpu || digger. /* for unix family only. compil...

为什么这个unix 版的ping 在 linux下编译无法通过?

出现了几百行各式各样的错误! 大家给在linux下编译一下吧,到底怎么回事啊?

/* PING.C
/*
/* ping source code distribute by cpu || digger.
/* for unix family only. compil and link success in sco unix.
/* i think linux no problem too. u can try it.
/* before read this code, you shoud know about the principle of
/* tcp/ip, especially icmp protocol, u also should also know some
/* about BSD socket API, and unix system signal programming.
/*
/* cc -o ping ping.c -lsocket, then u will get executable file,
/* but must act as root when cc it, and then set euid attribute
/* for this ping, then u can execute it as common user.
/* because only root can have authority to creat raw socket.
/*
/* i love socket, if so do u,
/* call me, cpu == digger
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
# define ICMP_ECHO 8 /* icmp echo requir */
# define ICMP_ECHOREPLY 0 /* icmp echo reply */
# define ICMP_HEADSIZE 8 /* icmp packet header size */
# define IP_HEADSIZE 20 /* ip packet header size */
typedef struct tagIpHead /* icmp packet header */
{
u_char ip_verlen; /* ip version and ip header lenth*/
u_char ip_tos; /* ip type of service */
u_short ip_len; /* ip packet lenghth */
u_short ip_id; /* ip packet identification */
u_short ip_fragoff; /* ip packet fragment and offset */
u_char ip_ttl; /* ip packet time to live */
u_char ip_proto; /* ip packet protocol type */
u_short ip_chksum; /* ip packet header checksum */
u_long ip_src_addr; /* ip source ip adress */
u_long ip_dst_addr; /* ip destination ip adress */
} IPHEAD;
typedef struct tagIcmpHead /* icmp header */
{
u_char icmp_type; /* icmp service type */
/* 8 echo require, 0 echo reply */
u_char icmp_code; /* icmp header code */
u_short icmp_chksum; /* icmp header chksum */
u_short icmp_id; /* icmp packet identification */
u_short icmp_seq; /* icmp packet sequent */
u_char icmp_data[1]; /* icmp data, use as pointer */
} ICMPHEAD;
u_short ChkSum( u_short * pIcmpData, int iDataLen )
/* for check sum of icmp header */
{
u_short iSum;
u_short iOddByte;
iSum = 0;
while ( iDataLen > 1 ) { /* xor the next unsigned int data */
iSum ^= *pIcmpData++;
iDataLen -= 2;
}
if ( iDataLen == 1 ) { /* the rest odd byte */
iOddByte = 0;
*((u_char *)&iOddByte) = *(u_char *)pIcmpData;
iSum ^= iOddByte;
}
iSum ^= 0xffff; /* xor 0xffff == not it */
return(iSum);
}
long time_now() /* return time passed by */
/* since 1970.1.1 00:00:00, */
/* in 1/1000000 second */
{
struct timeval now;
long lPassed;
gettimeofday(&now, 0);
lPassed = now.tv_sec * 1000000 + now.tv_usec;
/* now.tv_sec in second */
/* now.tv_usec in 1/1000000 second */
return lPassed;
}
char* host; /* destination host */
char* prog; /* program name */
extern errno; /* system global parameter */
long lSendTime; /* each time when send, change it */
u_short seq; /* the icmp packet seqence */
int iTimeOut; /* time out parameter */
int sock, sent, recvd, max, min, total;
/* sent : icmp packet already sent */
/* recvd: proper icmp packet received */
/* max, min: max min round trip time */
/* total: total round trip time */
/* store to calculate average */
u_long lHostIp; /* host ip adress */
struct sockaddr_in it; /* destination host information */
int ping();
void stat();
main(int argc, char** argv)
{
struct hostent* h;
char buf[200];
char dst_host[32];
int i, namelen;
IPHEAD* pIpHead;
ICMPHEAD* pIcmpHead;
if (argc 

    
 
 

您可能感兴趣的文章:

  • unix下编译问题
  • 本人要在Unix下编写C程序,不过我从没接触过Unix,怎样办?
  • 在sun公司网站上,好象没有jdk for sco unix 的版本,可否下载for solaris的辕马在sco unix 下编译
  • 谁有UNIX下编写菜单程序的源码,E一份给我!(Daiver@163.net)
  • 谁有UNIX下编写菜单程序的源码,E一份给我!(horby@263.net)救火!
  • 大家在UNIX/LINUX下编写C/C++程序时,用那些库?
  • 急:unix下编写了sybase程序,编译后能用了,
  • 如何在SCO UNIX5.06下编译C++程序?
  • 如何在TR64 UNIX下编译DEBUG或RELEASE版程序?
  • Digital Unix下编译动态链接库问题
  • Linix下编译生成的文件可以在本机器运行为什么不能在一Unix机器下运行。另外Unix下为什么没有make命令
  • 请问在windows下编的java程序能不能在unix下运行.
  • 我在sco unix下编写的makefile 文件哪里出错了
  • 在SCO UNIX下如何安装CC 如何在UNIX下编写C程序(给100分)
  • SOS ,在UNIX下编译C++程序时出现链接错误:未下义的符号,但函数库里有这些函数,不知道为什么?
  • 为什么这段代码在unix下编译会出问题??急~~~~~~
  • 谁能给我讲讲UNIX下编码与编码设置与编码转化问题。。。
  • 在unix下编写socket,从远端接收数据并存入db2数据库
  • 急:有没有能在X86下编译在UNIX下可以运行的交叉编译环境啊?
  • 我是新手,想请教各位大侠一个问题:我在unix下编译c文件的时候,系统总是提示我文件中有非法字符'//',程序中有的地方是用//作为注释符
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX
  • Hp Unix 或Linux下用tar归档,Aix Unix无法解归档,急!
  • unix无法启动了!!!
  • unix无法启动 在线等高手帮忙
  • 现在windows98已经通过modem拨号登陆上了unix,但却无法ping通。
  • unix desktopbsd无法登录
  • tcp端口被系统(unix stream)占用,本地服务无法正常启动
  • unix下移植到windows的程序无法进行精确到usec的时间控制问题~
  • UNIX 无法登陆,望高手们指点
  • 我的unix无法启动xfs
  • unix下mail命令无法执行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • unix服务器与window98通过两个modem拨号互联的问题?
  • 如何在UNIX上通过ODBC操纵Oracle等DBMS???
  • UNIX下如何通过并口,驱动打印机打印格式文件
  • 把HTML内嵌FLASH放在UNIX服务器上,用户通过网页能看到FLASH吗?
  • unix环境如何通过shell或java获取windows机器上的csv文件?
  • SCO UNIX如何配置telnet服务可以使windows用户通过telnet登陆?
  • 请问,linux和unix到底有什么区别,可不可以通过安装学习linux来掌握unix的命令等知识?
  • 路由器配置:有一局域网(SCO UNIX 5.0.5)与一台主机(SCO UNIX 5.0.5)通过祯中继联接。路由器(CISCO2610作主节点)在局域的IP为IPa,广
  • Window客户端通过ADO是否能够连接和操作Unix平台下的Oracle数据库?
  • unix文件(包括目录)如何通过刻录机备份到光盘上??
  • 在unix环境下能否通过程序来改变cron的内容?
  • linux或unix中有类似注册表一样的东西吗?如果没有,注册表的功能是通过什么实现的呢?
  • 通过windows前台界面监控unix守护进程与守护运行的日志
  • unix/linux下通过c/c++获取内存大小的方法。
  • Linux/UNIX下,C++程序通过那些步骤访问Oracle或者Sybase SQL数据库?
  • 请问如何使得SCO Unix用Telnet通过TCP/IP访问Novell,还有Novell4.11的Tenlnet服务如何开启?谢谢!
  • 高难Unix问题,为什么不能通过中国网通的宽带联接(ADSL)不能看到我的网站?
  • unix通过crontab 定时启动oracle应用程序??????????
  • Linux/UNIX下,C++程序通过那些步骤访问Oracle或者Sybase SQL数据库? iis7站长之家
  • 在UNIX中如何通过程序获得主机的资源使用状况,CPU利用率等。
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • unix/Linux下c++ boost thread库读写锁介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • 没有unix系统我如何学习unix
  • php将unix时间戳转换成字符串时间函数(date)
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • UNIX特急!!!digital unix问题,请专家快来!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3