解析http302重定向url

bool urlparse(const u_char* data,u_int len)

{

ip_header *ih;

udp_header *uh;

tcp_header *th;

u_short sport,dport;

int ip_len = 0;

ih = (ip_header *)(data+0xE);

ip_len = (ih->ver_ihl & 0xf) * sizeof(unsigned long);

th = (tcp_header *) ((u_char*)ih + ip_len);

sport = ntohs( th->th_sport );

dport = ntohs( th->th_dport );

if ((ih->proto != IPPROTO_TCP))

return false;

std::string strdata((char*)th + sizeof(tcp_header),len - ip_len - sizeof(tcp_header)+1);

static char szTag0[] = "HTTP/1.1 302 Moved Temporarily\r\n";

static char szTag1[] = "Location: ";

static char szTag2[] = "\r\n\r\n";

size_t nP0 = strdata.find(szTag0);

if (nP0 == std::string::npos)

return false;

size_t nP1 = strdata.find(szTag1,nP0+strlen(szTag0));

if (nP1 == std::string::npos)

return false;

size_t nP2 = strdata.find(szTag2,nP1+strlen(szTag1));

if (nP2 == std::string::npos)

return false;

std::string strUrl = strdata.substr(nP1+strlen(szTag1),nP2-nP1-strlen(szTag1));

printf("url>%s\n",strUrl.c_str());

return true;

}

时间: 2024-10-27 07:28:15

解析http302重定向url的相关文章

重定向URL

重定向的原因有哪些?[1]网址变更了[2]权限不够 [1]网址变更了 [举例]以google为例,之前我们可以访问www.google.cn,但是后来Z.F不让我们访问它了,那么google公司为了避免用户无法访问google的搜索引擎,就做了1个引导用户的跳转. 当你在浏览器内输入www.google.cn,此时显示如下图: 这里引导用户去点击中心区域的图片,并且你看,在图片内也做了比较负责任的说明"请收藏我们的网址:google.com.hk" 当你点击了中心区域的图片,浏览器此时

haproxy配置直接重定向url

在邮件列表看到有个人问haproxy能否在接到一个请求时选择一个后端服务器,然后301重定向url .主要原因是他有5个1G的出口,这样就能充分利用其带宽.测试了一下是可以的 frontend free        bind *:80        default_backend lvs2 backend lvs2 mode http option forwardfor header ORIG_CLIENT_IP server free174 10.253.3.16:8081 redir ht

【转】PHP获取重定向URL的几种方法

有时候我们会在开发中,经常会遇到有URL 301或 302重定向的情况,这时候我们可能需要获取重定向之后的url,下面我们介绍一下几种获取重定向url的方法: 1.用get_headers函数php自带的get_headers函数可以获取服务器响应一个HTTP请求所发送的所有标头,我们可以尝试用该函数实现. function get_redirect_url($url){ $header = get_headers($url, 1); if (strpos($header[0], '301′)

反向解析与重定向 | Django开发

1.html中的反向解析 1.1 原理:给url起名字,根据url的名字找到对应的视图 {% url 'register' %} # 如果url匹配时携带参数: url(r'^index/(\d+)/$', views.index, name='index'), # 那么,在匹配到视图时就需要传入一个参数: def index(request,param): return render(request, 'index.html', {'param':param}) # 在页面中的url反向解析,

爬虫代码实现五:解析所有分页url并优化解析实现类

如图,我们进入优酷首页,可以看到电视剧列表,我们称这个页面为电视剧列表页,而点击进入某个电视剧,则称为电视剧详情页.那么如何获取所有分页以及对应的详情页呢,通过下面的分页得到. 因此,首先,我们将StartDSJCount中的url从详情页改为列表页, 由于这里我们想获取列表页对应的所有分页详情页,因此,我们需要在page中添加一个urlList属性,然后给它get/set方法.这里如果自动生成set方法,那么我们在set时还要new一个list,有点麻烦,这里我们先暂时只自动生成get方法,然

Spring MVC系列:(2)视图解析器、URL映射器、适配器

1.默认的URL映射器.适配器和视图解析器 SpringMVC提供了默认的URL映射器.适配器和视图解析器. 在上一文中,springmvc-helloworld.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:mvc="http://

nginx 配置web 虚拟文件夹 而且codeIgniter,thinkphp 重定向url 地址

nginx 配置虚拟文件夹而且url 重定向 server { #侦听80port listen 8090; #定义使用www.xx.com訪问 server_name 127.0.0.1; #设定本虚拟主机的訪问日志 access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /home/lxy/www/cs/; #定义服务器的默认站点根文件夹位置 #默认请求 location / { index

dom4j来解析xml,通过URL获取服务器端返回的字符串,java swing 实现的页面

1)使用dom4j来解析xml字符串内容 import org.dom4j.DocumentHelper; String domString = getDomString(); Document document = DocumentHelper.parseText(domString); List<Element> list = document.selectNodes("table/tr/td/div/div/span"); String str = list.get(

Apache重定向URL

(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号; (2)然后再在httpd.conf中书写如下规则在apache的配置文件中新增: RewriteEngine onRewriteRule ^/(.*).(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|mp3|wav)$ https://abc.com/$1.$2 [