请教IdHttpServer163被对方服务器退回如何取得对方连接IP

用idhttpserver做web服务器的问题 - CSDN博客
用idhttpserver做web服务器的问题
D7版本, 出现的严重问题有:
1/ 有些机器不访问一下index.jsp就死机.
2/经常出现connection time out的情况, 重试一下又没问题
本文已收录于以下专栏:
相关文章推荐
我们在使用Nginx搭建HTTP的web server的过程中,一般都很顺利,默认的网站根目录一般是/usr/local/nginx/html,我们也可以正常访问到Nginx的欢迎信息,比如使用下面的...
关于HTTP 的宕机的问题因为HTTP任务的宕机的原因有很多种,所以要解决有关HTTP宕机的问题,需要用到几个文件来定位问题,但是首先就是要确定是否是HTTP进程引起的宕机。这可以通过查看在宕机时产生...
看完Ruslan的Blog:
《Let’s Build A Web Server. Part 1.》
文章讲得很透,给出服务器代码为:import socketHOST, PORT = '', 8...
写一些不同领域的博文,关于
最新学习JavaWeb开发,不过我暂时用的是idea开发工具,在新建web项目时,需要手动部署到tomcat服务器上运行,之前的demo都能运行的好好的,昨天学到了cookie,其中需要在jsp中完成...
windows 7 旗舰版无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证的问题。
现在是可以用localhost访问网站,就是不能调试。以前遇到过,不知道怎么搞好了,...
网上搜了很多使用ScriptX控件进行Web打印的例子, 都是讲怎么设置打印控件的,但是使用IIS部署后发现不能自动打印,原因是网站的权限问题,将该站点设置为信任的站点就可以了,这么简单的一个东西居然...
这几天做项目,碰到了一个问题。我做的是监控cpu、内存之类的程序,使用sigar来完成的。网上下了sigar的jar包及dll文件,下载路径:
网上例子程序很多,如:http://blog.sina....
1.Websphere连接池设置可能引起的问题:
(1).连接池都是大对象,比较消耗资源:
连接池中通常都是大对象,每个连接对象大约1~2MB,如果连接池设置过大,容易引起Websphere占用大...
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)2004年2月 C++ Builder大版内专家分月排行榜第二
2004年3月 C++ Builder大版内专家分月排行榜第三2004年1月 C++ Builder大版内专家分月排行榜第三
2004年4月 软件工程/管理大版内专家分月排行榜第三2003年10月 专题开发/技术/项目大版内专家分月排行榜第三
2004年4月 软件工程/管理大版内专家分月排行榜第三2003年10月 专题开发/技术/项目大版内专家分月排行榜第三
2004年4月 软件工程/管理大版内专家分月排行榜第三2003年10月 专题开发/技术/项目大版内专家分月排行榜第三
2004年4月 软件工程/管理大版内专家分月排行榜第三2003年10月 专题开发/技术/项目大版内专家分月排行榜第三
2007年6月 C++ Builder大版内专家分月排行榜第二2007年3月 C++ Builder大版内专家分月排行榜第二2007年1月 C++ Builder大版内专家分月排行榜第二2006年1月 C++ Builder大版内专家分月排行榜第二2005年12月 C++ Builder大版内专家分月排行榜第二2005年11月 C++ Builder大版内专家分月排行榜第二2005年7月 C++ Builder大版内专家分月排行榜第二2004年12月 C++ Builder大版内专家分月排行榜第二
2007年2月 C++ Builder大版内专家分月排行榜第三2007年6月 Delphi大版内专家分月排行榜第三2006年2月 C++ Builder大版内专家分月排行榜第三2005年10月 C++ Builder大版内专家分月排行榜第三2004年7月 C++ Builder大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。一、IDHTTP的基本用法 
IDHttp和WebBrowser一样,都可以实现抓取远端网页的功能,但是http方式更快、更节约资源,缺点是需要手动维护cook,连接等 
IDHttp的创建,需要引入IDHttp 
procedure InitHttp(); 
    http := TIdHTTP.Create(nil); 
    http.ReadTimeout := 30000; 
    http.OnRedirect := OnR 
    http.Request.Accept := 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*'; 
    http.Request.AcceptLanguage := 'zh-cn'; 
    http.Request.ContentType := 'application/x-www-form-urlencoded'; 
    http.Request.UserAgent := 'Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; SV1; M .NET CLR 1.1.4322)'; 
    http.ProxyParams.ProxyServer := '代理服务器地址'; 
    http.ProxyParams.ProxyPort := '代理服务器端口'; 
二、如何取得服务端返回的cookie信息,并添加到http的request对象中 
procedure S 
   i: I 
   tmp, cookie: S 
   cookie := ''; 
for i := 0 to http.Response.RawHeaders.Count - 1 do
       tmp := http.Response.RawHeaders[i]; 
if pos('set-cookie: ', LowerCase(tmp)) = 0 then C 
    tmp := Trim(Copy(tmp, Pos('Set-cookie: ', tmp) + Length('Set-cookie: '), Length(tmp))); 
    tmp := Trim(Copy(tmp, 0, Pos(';', tmp) - 1)); 
if cookie = '' then cookie := tmp else cookie := cookie + '; ' + 
if cookie && '' then
for i := 0 to http.Request.RawHeaders.Count - 1 do
      tmp := http.Request.RawHeaders[i]; 
if Pos('cookie', LowerCase(tmp)) = 0 then C 
      http.Request.RawHeaders.Delete(i); 
      B 
    http.Request.RawHeaders.Add('cookie: ' + cookie); 
三、如何取得网页中的所有连接,对代码做修改你也可以实现查找所有图片等等 
function GetURLList(Data: String): TStringL 
i: I 
List: TStringL 
tmp: S 
function Split(Data, Node: String): TStringL 
    Count, i, j: I 
function GetFieldCount(Data, Node: String): I 
         i: I 
          Result := -1; 
          i := Pos(Node, Data); 
if i = 0 then E 
             Result := 0; 
while i && 0 do
            Inc(Result); 
             Delete(Data, 1, i + Length(Node) - 1); 
            i := Pos(Node, Data); 
      Result := TStringList.C 
Count := GetFieldCount(Data, Node); 
for i := 0 to Count - 1 do
     j := Pos(Node, Data); 
     Result.Add(Copy(Data, 1, j - 1)); 
     Delete(Data, 1, j + Length(Node) - 1); 
Result.Add(Data); 
Result := TStringList.C 
    List := split(Data, 'href='); 
for i := 1 to List.Count - 1 do
      tmp := List[i]; 
       tmp := Copy(tmp, 0, Pos('&/a&', tmp) - 1); 
       tmp := Copy(tmp, 0, Pos('&', tmp) - 1); 
if Pos(' ', tmp) && 0 then
          tmp := Copy(tmp, 0, Pos(' ', tmp) - 1); 
       tmp := Q_ReplaceStr(tmp, Char(34), ''); 
     tmp := Q_ReplaceStr(tmp, Char(39), ''); 
if not Compare(CI.Key, tmp) then C 
if Copy(tmp, 1, 7) && 'http://' then
if Copy(tmp, 1, 1) = '.' then tmp := StringReplace(tmp, '.', '', []); 
if Copy(tmp, 1, 1) = '.' then tmp := StringReplace(tmp, '.', '', []); 
         tmp := 'http://' + http.URL.Host + ':' + http.URL.Port + http.URL.Path + 
if Result.IndexOf(tmp) && -1 then C 
          Result.Add(tmp); 
   FreeAndNil(List); 
四、如何模拟http的get方法打开一个网页 
function GetMethod(http: TID URL: S Max: Integer): S 
RespData: TStringS 
RespData := TStringStream.Create(''); 
      Http.Get(URL, RespData); 
      Http.Request.Referer := URL; 
      Result := RespData.DataS 
      Dec(Max); 
if Max = 0 then
        Result := ''; 
        E 
      Result := GetMethod(http, URL, Max); 
    FreeAndNil(RespData); 
五、如何模拟http的post方法提交一个网页 
function PostMethod(URL, Data: S max: Integer): S 
PostData, RespData: TStringS 
RespData := TStringStream.Create(''); 
PostData := TStringStream.Create(Data); 
if http = nil then E 
      Http.Post(URL, PostData, RespData); 
      Result := RespData.DataS 
      http.Request.Referer := URL; 
      Dec(Max); 
if Max = 0 then
        Result := ''; 
        E 
      Result := PostMethod(URL, Data, Max); 
    http.D 
    FreeAndNil(RespData); 
    FreeAndNil(PostData); 
六、伪造session 
My_Cookie,tmpcookie: 
aIdHttp.Get('http://www.huochepiao.net/'); 
tmpcookie:=aIdHttp.Request.CustomHeaders.Values['Set-Cookie']; 
if Pos(';',tmpcookie)&0 then
     My_Cookie:=LeftBStr(tmpcookie,Pos(';',tmpcookie)-1) 
     My_Cookie:= 
aIdHTTP.Request.CustomHeaders.C 
aIdHTTP.Request.CustomHeaders.Add('Cookie:'+My_COOKIE); 
阅读(...) 评论()您当前所在位置:&>>&&>>&正文
注意:既使b类不可以转换为A类,使用is做判断的时候,是可以通过编译的,也不会抛出异常,只是会给出提
如何在SqlServer中获取前端连接的IP地址,计算机名等信息
创建时间:日 16:10&&阅读次数:(14175)
在一些需求中,可能我们需要知道连接到SqlServer的前端程序的一些系统信息,比如前端连接的计算机名称,IP地址,什么时候开始请求连接,什么时候结束连接等信息。
如果你对SqlServer的系统函数或视图不太了解,这个功能看起来好像比较复杂,而实际上, SqlServer的动态管理视图已经给我们提供了这些信息,下面我们来看两个动态管理视图。
1、Sys.dm_exec_Sessions
这个视图中提供了所有连接sqlserver的客户端的一些信息,下面是Sys.dm_exec_Sessions返回的列:
Session_id
标识与每个活动主连接关联的会话。
login_time
建立会话的时间。
nvarchar(128)
与会话关联的主机。
program_name
nvarchar(128)
与会话关联的程序。
host_process_id
与会话关联的进程 ID。
client_version
客户端连接到服务器所用的接口版本。
client__name
nvarchar(32)
客户端连接到服务器所用的接口名称。
security_id
varbinary(85)
与登录名关联的 Microsoft Windows 安全 ID。
login_name
nvarchar(128)
与会话关联的 SQL 登录名。
nvarchar(128)
从中建立会话连接的域。
nt_user_name
nvarchar(128)
与会话关联的用户名。
nvarchar(30)
会话的状态。可能的值:
1,运行 - 当前正在运行一个或多个请求
2,睡眠 - 当前没有运行任何请求
3,休眠 - 会话处于登录前状态
context_info
varbinary(128)
会话的 CONTEXT_INFO 值。
该会话所占用的 CPU 时间(毫秒)。
memory_usage
该会话所占用的 8 KB 内存页数。
total_scheduled_time
计划内含请求的会话的执行所耗用的总计时间(毫秒)。
total_elapsed_time
自会话建立以来已耗用的时间(毫秒)。
endpoint_id
与会话关联的端点的 ID。
last_request_start_time
最近一次会话请求的开始时间。这包括当前正在执行的请求。
last_request_end_time
最近一次会话请求的完成时间。
在该会话期间该会话中的请求所执行的读取次数。
在该会话期间该会话中的请求所执行的写入次数。
logical_reads
已对该会话执行的逻辑读取数。
is_user_process
如果会话是系统会话,则为 0。否则,为 1。
会话的 TEXTSIZE 设置。
nvarchar(128)
会话的 LANGUAGE 设置。
date_format
nvarchar(3)
会话的 DATEFORMAT 设置。
date_first
会话的 DATEFIRST 设置。
quoted_identifier
会话的 QUOTED_IDENTIFIER 设置。
arithabort
会话的 ARITHABORT 设置。
ansi_null_dflt_on
会话的 ANSI_NULL_DFLT_ON 设置。
ansi_defaults
会话的 ANSI_DEFAULTS 设置。
ansi_warnings
会话的 ANSI_WARNINGS 设置。
ansi_padding
会话的 ANSI_PADDING 设置。
ansi_nulls
会话的 ANSI_NULLS 设置。
concat_null_yields_null
会话的 CONCAT_NULL_YIELDS_NULL 设置。
transaction_isolation_level
会话的事务隔离级别。
0 = 未指定
1 = 未提交读取
2 = 已提交读取
3 = 可重复
4 = 可序列化
lock_timeout
会话的 LOCK_TIMEOUT 设置。该值以毫秒计。
deadlock_priority
会话的 DEADLOCK_PRIORITY 设置。
到目前为止会话返回的行数。
prev_error
会话返回的最近一个错误的 ID。
比如说,我们要看那些主机有连接到了sqlserver服务器,可以使用下面的sql语句:
select distinct host_name from sys.dm_exec_Sessions
要看那些用户已连接到sqlserver服务器:
select distinct login_name from sys.dm_exec_Sessions
当然,利用上面的列,我们可以获得更多想要的客户端信息
2、Sys.dm_exec_connections
这个视图返回了连接sqlserver服务器上面的每个连接的详细信息,下面是Sys.dm_exec_connections返回的列:
Session_id
标识与此连接关联的会话。
most_recent_Session_id
显示与此连接关联的最近请求的会话 ID。
connect_time
连接建立时的时间戳。
net_transport
nvarchar(40)
说明该连接使用的物理传输协议。
protocol_type
nvarchar(40)
指定负载的协议类型。此参数当前可区分 TDS (TSQL) 和 SOAP。
protocol_version
与此连接关联的数据访问协议的版本。
endpoint_id
与此连接关联的端点的唯一标识符。此 endpoint_id 可用于查询 sys.endpoints 视图。
encrypt_option
nvarchar(40)
说明是否为此连接启用了加密的布尔值。
auth_scheme
nvarchar(40)
指定与此连接一起使用的 SQL Server/NT 身份验证。
node_affinity
显示与此连接关联的 SOS 节点。
此连接中已发生的读包次数。
num_writes
此连接中已发生的写数据包次数。
此连接中上一次发生读操作的时间戳。
last_write
此连接中上一次发生写操作的时间戳。
net_packet_size
用于信息和数据的网络包的大小。
client_net_address
varchar(40)
与此服务器连接的客户端的主机地址。
client_tcp_port
与该连接关联的客户机上的端口号。
local_net_address
varchar(40)
显示此连接的目标服务器的 IP 地址。只对使用 TCP 传输提供程序的连接可用。
local_tcp_port
如果此连接使用 TCP 传输,则显示该连接的目标服务器的 TCP 端口。
connection_id
uniqueidentifier
对每个连接进行唯一标识。
parent_connection_id
uniqueidentifier
标识 MARS 会话正在使用的主要连接。
most_recent_sql_handle
varbinary(64)
此连接上执行的上一个请求的 SQL 句柄。most_recent_sql_handle 列始终与 most_recent_Session_id
比如,我要查看当前连接的客户端IP与sqlserver所在服务器的IP,可以用下面的sql查询:
select client_net_address '客户端IP',local_net_address '服务器的IP' from sys.dm_exec_connections where Session_id=@@spid
@@spid的作用是返回当前进程的会话ID。{thV ?(W裇^
g?hV?B
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】
感谢您的支持,我会做的更好!
扫码打赏,您说多少就多少
发表评论:
请输入问题&&的结果(结果是:)ms sql server 查看服务器当前的连接会话及会话信息(客户端ip地址,协议,时间,读写情况等)
select * from sys.dm_exec_connections
这实际上是master数据库里的一个系统视图,读出来后有不少字段,如client_net_address, protoco_type, connect_time, num_read, num_write等,很明白,就不多说了。
btw,master数据库里有很多系统视图,如:dm_exec_sessions, dm_fts_memory_pools, dm_os_hosts, dm_os_memory_allocations, dm_os_memory_objects, dm_os_threads, sql_logins, types等,很有参考意义
延伸阅读coded by
有人回复时邮件通知我
赞助商链接

我要回帖

更多关于 成功到达对方服务器 的文章

 

随机推荐