libnet TCP示例
[root@TD18 tmp]#gcc -o 1 1.c -lnet
[root@TD18 tmp]#./1
please enter Host address
11.11.11.11
please enter local address:
22.22.22.22
wrote 126 byte TCP packet
[root@TD18 tmp]#cat 1.c
#include<stdio.h>
#include<string.h>
#include<pcap.h>
#include<libnet.h>main(void)
{ int c ;u_char *cp;libnet_t *l;libnet_ptag_t t;char *payload;u_char HostAddr[255],MyAddr[255];u_short payload_s;u_long src_ip,dst_ip;u_short src_prt,dst_prt;char errbuf[LIBNET_ERRBUF_SIZE];printf("please enter Host address\n");scanf("%s",HostAddr);printf("please enter local address:\n");scanf("%s",MyAddr);l=libnet_init( LIBNET_LINK,NULL,errbuf);if(l==NULL){printf("libnet failed: %s",errbuf);exit(EXIT_FAILURE);}dst_ip=inet_addr(HostAddr);src_ip=inet_addr(MyAddr);dst_prt=0;src_prt=0;payload="adafhafhasfjashfasjfasjkfhsadjkfajskfjasdhfjaksfjkaf";payload_s=strlen(payload);
t=libnet_build_tcp_options("\003\003\012\001\002\004\001\011\010\012\077\077\077\077\000\000\000\000\000\000",20,l,0);
if(t==-1){printf("cant build TCP options: %s\n",libnet_geterror(l));goto bad;}t=libnet_build_tcp(src_prt,dst_prt,0x01010101,0x02020202,TH_SYN,32767,0,10,LIBNET_TCP_H+20+payload_s,payload,payload_s,l,0 );
if(t==-1){printf("cant build TCP header:%s\n",libnet_geterror(l));goto bad;}t=libnet_build_ipv4(LIBNET_IPV4_H+LIBNET_TCP_H+20+payload_s,0,242,0,64,IPPROTO_TCP,0,src_ip,dst_ip,NULL,0,l,0);if(t==-1){printf("cant build IP header:%s\n",libnet_geterror(l));goto bad;}t=libnet_build_ethernet("00:0B:6A:63:5E:11","00:0B:6A:63:5E:22",ETHERTYPE_IP,NULL,0,l,0);if(t==-1)
{printf("cant buid ethernet header:%s\n",libnet_geterror(l));goto bad;
}c=libnet_write(l);
if(c==-1){printf("write error:%s\n",libnet_geterror(l));goto bad;}
else { printf("wrote %d byte TCP packet\n",c);}
libnet_destroy(l);
return(EXIT_SUCCESS);
bad:libnet_destroy(l);return(EXIT_FAILURE);}

posted on 2013-10-03 23:10 RodYang 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/RodYang/p/3350751.html

libnet TCP示例相关推荐

  1. java Socket Tcp示例三则(服务端处理数据、上传文件)

    示例一: package cn.itcast.net.p5.tcptest; import java.io.BufferedReader; import java.io.IOException; im ...

  2. 服务器支持http tcp,Nginx配置http和tcp(示例代码)

    最近在弄ejabberd+riak.其实这俩东西配置挺坑的,然后具体这俩货怎么配置,我以后会抽空写出配置的详细过程.对于负载均衡,我知道的现在有Nginx/LVS/HAProxy这三个大仙儿,各自有各 ...

  3. Libnet简单学习

    简单了解后,建议直接查看源码,以获得其他函数:libnet: libnet-functions.h File Reference 本文仅列举个别常用函数 libnet工作流程 (1)通过libnet_ ...

  4. python前后台tcp/udp通讯示例

    以下代码兼容python2.7+.python3 TCP示例 服务器 -- sever_tcp.py #!/usr/bin/env python #coding=utf-8import time im ...

  5. python高级语法-套接字编程之UDP和TCP编程

    存在两类协议UDP和TCP协议,前者是不安全的不面向链接的传输,速度快,后者是安全的面向链接的传输,速度慢. 首先,必须明确服务器和客户端的区别 在服务器端连接ip地址和端口唯一指定这个程序,接受访问 ...

  6. 学会Zynq(11)RAW API的TCP和UDP编程

    RAW API RAW API(有时称作native API)是一种事件驱动型的API,在没有操作系统的情况下使用.核心栈通过这个API完成不同协议间的交互. 使用lwIP栈的应用程序通过一组回调函数 ...

  7. 【测试】发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

    目录 通过/dev/tcp./dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp./dev/udp (https://blog.csdn.net/u0100394 ...

  8. python发送xml报文_python通过tcp发送xml报文的方法

    如下所示: # -*- coding: utf-8 -*- import socket # 使用tcp发送请求报文 def tcpsend(ip, port, xmlbw): address = (i ...

  9. lua语言开发esp8266接入巴法云,mqtt和tcp协议

    第一步,lua语言开发环境配置 下载安装java环境,下载地址:点击下载 选择windows版本下载安装即可,如图所示: 下载开发环境包: 下载地址:点击下载 esp8266串口驱动:点击下载 下载后 ...

最新文章

  1. BF算法优化-------KMP算法
  2. ZKFC服务异常:Parent znode does not exist.
  3. js里父页面与子页面的相互调用
  4. python3菜鸟教程-Python3 运算符
  5. data后缀文件解码_WMA文件格式和解码流程 | 学步园
  6. Flutter一切皆widget但是不要将所有东西放入一个widget
  7. 在做研究的时候很重要的事情
  8. eclipse中护眼色设置
  9. feedback.php,feedback.php
  10. HTML5---新增客户端储存
  11. 03-12 Android 混合页面测试
  12. 第 8 章 MybatisPlus 扩展
  13. vagrant特性——基于docker开发环境(docker和vagrant的结合)-2-命令
  14. Jboss项目部署出现java.lang.UnsupportedClassVersionError 问题的解决方法
  15. 【统计学习方法】EM算法原理
  16. 21. 合并两个有序链表
  17. iframe调用其他网站出现验证码错误
  18. 常用API——Object、Objects、StringBuilder
  19. C语言初阶——6.进制
  20. VMware9虚拟机和Fedora12安装-实现Windows和Linux文件共享

热门文章

  1. MySQL数据库优化实战
  2. Hibernate一对多关联映射及cascade级联操作
  3. 信息系统服务器备机,医院信息系统业务连续性讨论:双机热备、RAC还是x86一体机?...
  4. Spring 框架所有版本大集合下载
  5. 简单理解Python中的if __name__ == '__main__'
  6. mysql停止服务命令_0789不停止MySQL服务重做备库的方法
  7. C/Cpp / 设计模式 / 模板模式
  8. Qt / SIGNAL、SLOT、signals、slots、emit 关键字含义
  9. php禁用了所有命令执行的函数 怎么搞,PHP通过bypass disable functions执行系统命令的方法汇总...
  10. sublime python运行快捷键_SublimeREPL执行Python快捷键