使用libnet_build_tcp_options设置options数据

在使用libnet发送TCP SYN数据时,一般默认不设置options信息,即没有mss和时间戳。

在某些IDC机房,这些数据会被拦截掉。出现的现象是使用telnet访问没有问题,但是libnet发送SYN数据包没有回应。需要在发包的时候设置options信息。libnet提供了libnet_builf_tcp_options来进行设置。

uint8_t payload[20] = {0x00};
static int set_options_payload(uint8_t *payload,uint32_t timeval,uint16_t mss)
{
    int len = 0;
    
    //set mss value
    payload[len++] = 0x02;
    payload[len++] = 0x04;
    payload[len++] = (uint8_t)((mss >> 8) & 0xFF);
    payload[len++] = (uint8_t)(mss & 0xFF);
    
    //set SACK
    payload[len++] = 0x04;
    payload[len++] = 0x02;
    
    //set timeval
    payload[len++] = 0x08;
    payload[len++] = 0x0a;
    payload[len++] = (uint8_t)((timeval >> 24) & 0xFF);
    payload[len++] = (uint8_t)((timeval >> 16) & 0xFF);
    payload[len++] = (uint8_t)((timeval >> 8) & 0xFF);
    payload[len++] = (uint8_t)(timeval & 0xFF);
    len+=4;
    
    //set NOP
    payload[len++] = 0x01;
    
    //set Window scale
    payload[len++] = 0x03;
    payload[len++] = 0x03;
    payload[len] = 0x07;    
    return 0;
}

r = libnet_build_tcp_options(
            payload,
            20,
            l,
            0);
时间: 2024-11-09 10:17:40

使用libnet_build_tcp_options设置options数据的相关文章

easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字

先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text

Sharepoint2013搜索学习笔记之设置业务数据内容源(六)

Sharepoint搜索爬网组件支持爬Business Data Connectivity Service 承载的外部数据,关于Business Data Connectivity Service设置外部数据源,详请请参考:如何:在 SharePoint 2013 中为 SQL Server 创建外部内容类型,爬网设置步骤如下: 第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,点击内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类

使用命令设置MySQL数据表自增ID起始值

使用命令设置MySQL数据表自增ID起始值技术 maybe yes 发表于2015-01-24 16:14 原文链接 : http://blog.lmlphp.com/archives/68  来自 : LMLPHP后院 有 时候我们清空了 MySQL 数据库中数据表的记录,自动增长的 ID 值变的很大,如何将自动增长的 ID 值设置为1或者修改为其他的值呢?使用一些工具,比如 NaviCat for MySQL 当然非常简单,通过在设计表处修改即可,其他的一些工具也都很简单.下面给出使用 SQ

Android中如何为ListView设置静态数据

有的时候我们需要为一个listview设置固定的数据,下边就是如何设置静态的数据 布局文件listview 的主页面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

IgH设置EtherCAT数据流程

IgH设置EtherCAT数据流程在启动IgH协议栈后,协议栈会自动的把EtherCAT从站初始化到PREOP模式,从PREOP状态迁移到SAFEOP状态,需要设置PDO.DC等数据.以山洋电机为例数据设置流程如图 1.1所示: 图 1.1 PREOP状态迁移流程 IgH应用实现流程 申请获取主栈在配置数据之前首先获取一个主栈结构体,该结构和协议栈中的master对应.通过获取到的主栈结构,把数据配置到协议栈中的数据结构中(目前只有一个主栈,不支持冗余备份). 图 2.1 申请主栈接口 为每个从

iOS-偏好设置保存数据

两个按钮 - (IBAction)save:(id)sender { // [NSUserDefaults standardUserDefaults]可以直接操作偏好设置文件夹 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 自动帮我们生成一个plist文件存放在偏好设置的文件夹 [defaults setObject:@"hm" forKey:@"account"]; //

使用偏好设置存储数据

偏好设置 iOS应用支持偏好设置,要来保存数据,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置. 每个应用都有一个NSUserDefaults实例,通过它来存取偏好设置. + (NSUserDefaults *)standardUserDefaults //单例对象 存储偏好设置使用set开头的方法,如: NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [default

Android下设置ListView数据加载完成后执行layoutanimation

今天使用android的volley框架写了一个简单的网络天气获取的demo. 承载数据的空间是ListView 因为是网络加载,必然先要设置ListView的默认数据,我设置的就是那个Loading... 然后从网络获取到数据后,再解析,然后更新到adapter,然后notifyDataSetChanged更新数据到ListView. 可是ListView设置了layoutanimation,这样默认的ListView打开后那个Loading执行了动画,当网络数据加载完毕后, layoutan

微信小程序 设置全局数据

在app.js写 //app.js App({ globalData:{ userInfo:null, } }) 设置数据 app.globalData.userInfo=result; 获取数据 this.setData({ userInfo:getApp().globalData.userInfo }); 原文地址:https://www.cnblogs.com/yuyisoft/p/8387224.html