Python获取IP的方式与意义

使用“HTTP_X_FORWARDED_FOR”获取到的IP地址,有以下几种情况。

①没有使用代理服务器:

REMOTE_ADDR = 您的 IP

HTTP_VIA = 没数值或不显示

HTTP_X_FORWARDED_FOR = 无数值或不显示

②使用透明代理服务器(Transparent Proxies):

REMOTE_ADDR = 最后一个代理服务器 IP

HTTP_VIA = 代理服务器 IP

HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:118.168.8.66, 119.188.68.169, 119.188.68.231

此类代理服务器仍然将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

③使用普通匿名代理服务器(Anonymous Proxies):

REMOTE_ADDR = 最后一个代理服务器 IP

HTTP_VIA = 代理服务器 IP

HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:119.188.68.169, 119.188.68.231

此类代理服务器隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

④使用欺骗性代理服务器(Distorting Proxies):

REMOTE_ADDR = 代理服务器 IP

HTTP_VIA = 代理服务器 IP

HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:3.6.9.12, 119.188.68.169, 119.188.68.231

此类代理服务器告诉了访问对象您使用了代理服务器,却编造了一个虚假的随机IP代替您的真实IP欺骗它。

⑤使用高匿名代理服务器(High Anonymity Proxies (Elite proxies)):

REMOTE_ADDR = 代理服务器 IP

HTTP_VIA = 没数值或不显示

HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:119.188.68.169, 119.188.68.231

此类代理服务器完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象一样。

    最后一次代理服务器的地址并没有记录在代理链中,因此只记录 X-Forwarded-For 字段是不够的。完整起见,Web服务器应该记录请求来源的IP地址以及X-Forwarded-For 字段信息

原文地址:https://www.cnblogs.com/kangxi/p/9897633.html

时间: 2024-10-11 15:53:11

Python获取IP的方式与意义的相关文章

Python 获取IP地址

Windows下2种方法:1.使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip使用gethostbyname和gethostbyname_ex两个函数可以实现import socketlocalIP = socket.gethostbyname(socket.gethostname())#这个得到本地ipprint "local ip:%s "%localIP ipList = socket.gethostbyname_ex(socket

python获取ip代理列表爬虫

最近练习写爬虫,本来爬几张mm图做测试,可是爬到几十张的时候就会返回403错误,这是被网站服务器发现了,把我给屏蔽了. 因此需要使用代理IP.为了方便以后使用,我打算先写一个自动爬取ip代理的爬虫,正所谓,磨刀不误砍柴工,读完高中再打工! 先看看运行结果: 函数返回一个列表 废话少说,放码出去: #-*- coding: utf-8 -*- import urllib import urllib2 import re import time # obtain some ip and port f

python 获取IP

import commandscmd = "ifconfig br0 | grep 'inet addr' | sed 's/^.*addr://g' |sed 's/ Bcast:.*$//g'"(status, ip) = commands.getstatusoutput(cmd) 原文地址:https://www.cnblogs.com/sea-stream/p/9939569.html

webapi获取IP的方式

using System.Net.Http; public static class HttpRequestMessageExtensions { private const string HttpContext = "MS_HttpContext"; private const string RemoteEndpointMessage = "System.ServiceModel.Channels.RemoteEndpointMessageProperty"; p

Python获取网卡信息(名称、MAC、IP、网关等)

"人生苦短,我用Python".Python的高效有一部分是跟它丰富的模块分不开的.Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间. Python pypi库中一个模块名字叫"netifaces",使用C语言写的一个第三方模块.可以: 1.获取本机的所有网关 2.获取本机所有的接口Interface(网卡NIC) 3.获取本机指定接口的详细信息,包括IP地址.子网掩码.广播地址.MAC地址等 不过遗憾的是这个模块的功能太有限以及会带出一些令人困惑

python获取本机IP、mac地址、计算机名

在python中获取ip地址和在php中有很大不同,在php中往往比较简单.那再python中怎么做呢? 我们先来看一下python 获得本机MAC地址: 1 2 3 4 import uuid def get_mac_address():      mac=uuid.UUID(int = uuid.getnode()).hex[-12:]      return ":".join([mac[e:e+2] for e in range(0,11,2)]) 下面再来看一下python获取

自动获取IP地址的命令是什么?您知道在什么情况下,您的Linux才可以自动获取IP地址?

1. 自动获取IP地址的命令是什么?您知道在什么情况下,您的Linux才可以自动获取IP地址? 答:(1) Linux中使用 dhclient 命令可以从DHCP服务器上获得一个可用的IP地址 (2)首先,需要激活网卡eth0:其次,如果linux是虚拟机,那么还需要设置虚拟机的网络是桥接 模式或者NAT模式,桥接模式必须在网络管理员允许分配IP的情况下自动获得IP地址才能成功: NAT模式一般都能成功:最后,可以配置eth0的配置文件/etc/sysconfig/network-scripts

虚拟机克隆Linux想使用远程工具却无法获取IP地址

使用虚拟机新建Linux启动Linux系统 首先编辑网卡信息:[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0c:e9:51:c2:51 TYPE=Ethernet UUID=df672a61-a87f-45b1-8445-7a304e870f66 ONBOOT=yes            #这是随系统启动而启动的选项 NM_CONTROLLED=no #这是由

Python脚本获取参数的方式

在运维过程中,常常需要自己写脚本,而python往往是最佳的选择.那么怎么获取python脚本的命令行参数呢,例如: python demo.py a b c 怎么获取命令行参数,a,b,c 呢?可以通过sys库里面的argv来实现, 例如: $ cat demo.py #-*- coding: UTF-8 -*- import os import sys def demo(): print sys.argv print len(sys.argv) for i in range(len(sys.