Foxtable(狐表)用户栏目专家坐堂 → [求助]ip获取浏览器行HttpClient不行的问题


  共有2141人关注过本帖树形打印复制链接

主题:[求助]ip获取浏览器行HttpClient不行的问题

帅哥哟,离线,有人找我吗?
浙江仔
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
[求助]ip获取浏览器行HttpClient不行的问题  发帖心情 Post By:2019/6/20 8:52:00 [显示全部帖子]

用浏览器打开http://www.ip138.com/,显示本机的外网ip,正常

但是使用HttpClient,无法连接
Dim url As String = "http://www.ip138.com/"
Dim hc As New HttpClient(url)
Dim ret As String = hc.GetData()
msgbox(ret)

是不是对方服务器限制了什么参数,需要提交过去?比如说User-Agent
该怎么设置?


 回到顶部
帅哥哟,离线,有人找我吗?
浙江仔
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2019/6/20 9:34:00 [显示全部帖子]

HttpClient 有没有hc.UserAgent?



 回到顶部
帅哥哟,离线,有人找我吗?
浙江仔
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2019/6/20 10:14:00 [显示全部帖子]

谢谢,能获取网页框架数据,但是ip地址这数据获取不到,如图中红框的,不在str中

查了一下,原来是由其他地址数据获取的,http://200019.ip138.com/


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190620101244.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/6/20 10:20:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
浙江仔
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2019/6/20 11:44:00 [显示全部帖子]

通过两次获取,第一次获取地址,然后用这个地址获取真实ip


'''
Dim req = System.Net.WebRequest.Create("http://www.ip138.com")
req.C
req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; rv:57.0) Gecko/20100101 Firefox/57.0"
Dim pos = req.GetResponse
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm,Encoding.Default)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close

Dim start As Integer = str.IndexOf("<iframe src=")
Dim End1 As Integer =str.IndexOf("nofollow")
Dim ret As String
If start >0 And End1 >start Then
    Dim url As String =trim(str.SubString(start+13,End1-start-20)) 'IP地址,最多15个字符
    Dim hc As New HttpClient(url)
    ret = hc.GetData()
End If

Dim s1 As Integer =ret.Indexof(":[")
Dim s2 As Integer =ret.Indexof("来自:")
Dim ip91,ip92 As String

If s1>0 And s2>s1 Then
    ip91 =trim(ret.SubString(s1+2,s2-s1-4)) 
    
    Dim ss As String =ret.SubString(s2,20)
    Dim s3 As Integer =ss.Indexof("</p>")
    ip92=ss.SubString(3,s3-3)
End If


 回到顶部
帅哥哟,离线,有人找我吗?
浙江仔
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1325 积分:9586 威望:0 精华:1 注册:2010/7/21 14:20:00
  发帖心情 Post By:2019/6/20 13:50:00 [显示全部帖子]

谢谢

 回到顶部