首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从同一服务器发出curl请求时IP不正确

从同一服务器发出curl请求时IP不正确
EN

Server Fault用户
提问于 2019-12-10 00:50:44
回答 1查看 864关注 0票数 1

我有一个带有IP AAA.AAA的用户A,这个用户需要在同一个服务器(Directadmin/CentOS/IP )上使用卷曲访问另一个用户B的目录(使用IP BBB.BBB)。此用户的这个目录被HTAccess锁定。通常,对于外部用户,我会通过将其IP地址添加到HTAccess文件中来打开HTAccess中的目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Limit GET POST PUT PATCH DELETE>
order deny,allow
deny from all
allow from AAA.AAA.AAA.AAA
</Limit>

用户A的请求不通过(403)。我在用户B上做了一个test.php:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?
echo json_encode($_SERVER, JSON_PRETTY_PRINT);

当cURLing从用户A发送到此文件时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPOST https://example.com/test.php --dns-ipv4-addr AAA.AAA.AAA.AAA

我得到以下结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"SERVER_ADDR":BBB.BBB.BBB.BBB,
"REMOTE_ADDR":BBB.BBB.BBB.BBB,

因此,问题是:当来自同一服务器的cURLing时,用户B将自己的IP地址作为外部方报告(SERVER_ADDR和REMOTE_ADDR是相同的)。显然,我希望结果是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"SERVER_ADDR":BBB.BBB.BBB.BBB,
"REMOTE_ADDR":AAA.AAA.AAA.AAA,

因此,我的IP限制将如预期的那样起作用。我还想补充一点,如果我将BBB.BBB添加到htaccess中,请求就会出现。另外,从我的计算机发出请求时,ip地址也是正确报告的。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-12-10 00:54:40

-dns-ipv4-addr只是用于DNS请求的地址。它不是用于实际的请求。试一试--interface

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPOST https://example.com/test.php --interface aa.aa.aa.aa
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/994999

复制
相关文章
python函数可以按照参数名称方式传递参数_python字符串作为函数参数
函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。
全栈程序员站长
2022/09/27
2K0
python函数可以按照参数名称方式传递参数_python字符串作为函数参数
golang函数参数中接口指针的传递
最近写代码的时候遇到了一个问题:有一个功能需要使用一个接口,有多个结构体实现了这个接口(经典OO场景)。这些方法中,有一些方法可以修改结构体中的指定属性,并且有一个对应的方法来返回这个属性。
千灵域
2022/06/17
2.3K0
[GO] 变参函数-GO中函数传递变长参数
如果函数的最后一个参数是采用 ...type 的形式,那么这个函数就可以处理一个变长的参数,这个长度可以为 0,这样的函数称为变参函数。
唯一Chat
2020/10/16
9560
[GO] 变参函数-GO中函数传递变长参数
如果函数的最后一个参数是采用 ...type 的形式,那么这个函数就可以处理一个变长的参数,这个长度可以为 0,这样的函数称为变参函数。
唯一Chat
2020/10/27
8500
面试官刁难:Java字符串可以引用传递吗?
老读者都知道了,六年前,我从苏州回到洛阳,抱着一幅“海归”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两三个令我感到满意。其中有一位叫老马,至今还活在我的手机通讯录里。他当时扔了一个面试题把我砸懵了:Java 字符串可以引用传递吗?
沉默王二
2020/02/11
5250
面试官刁难:Java字符串可以引用传递吗?
向Bash函数传递参数
除非发生语法错误或已存在同名的只读函数,否则函数定义的退出状态为零。执行时,函数的退出状态码是在主体中执行的最后一个命令的退出状态码。
程序熵
2023/09/25
1950
向Bash函数传递参数
C++函数参数传递
当形参是非引用类型时,实参的值会被拷贝给形参,实参和形参是两个完全不同的对象,函数对形参做的所有操作都不会影响实参。
TOMOCAT
2021/05/11
1.7K0
Python函数参数传递机制
其中Number、String、Tuple和Sets是不可变类型,List和Dictionary是可变类型。
猫叔Rex
2022/01/24
8050
Python 函数作为参数传递
#map()的功能是将函数对象依次作用于表的每一个元素,每次作用的结果储存于返回的表re中。 #map通过读入的函数(这里是lambda函数)来操作数据 def test_func_map():     re = map((lambda x: x+3), [1, 2, 3, 4])     print re def testA(a, b, **kargs):     print a+b     print "testA: %s" % kargs #函数作为参数传递 def test_func(func, a, b, **kargs):     func(a, b)     print "test_func: %s" % kargs #函数作为参数传递 def test_func_lambda(func, **kargs):     func()     print "test_func_lambda: %s" % kargs def test_func_getattr():     func = getattr(obj, "testA")     func(1, 2) class TestGetattr():     aa = "2a"     def get_attr(self):         print "test getattr()"     def print_text(self):         print "print text"     def print_string(self):         print "print string" #getattr(obj, "a")的作用和obj.a是一致的,但该方法还有其他的用处,最方便的就是用来实现工厂方法 #根据传入参数不同,调用不同的函数实现几种格式的输出 def output(print_type="text"):     tg = TestGetattr()     output_func = getattr(tg, "print_%s" % print_type)     output_func() if __name__ == "__main__":     #test_func(testA, 1, 2, aa="aa")     #test_func_lambda((lambda: testA(1, 2, bb="bb")), cc="cc")     #test_func_map()     #test_func_getattr()     #getattr方法,传入参数是对象和该对象的函数或者属性的名字,返回对象的函数或者属性实例     obj = TestGetattr()     func = getattr(obj, "get_attr") #getattr()获得对象的属性和方法     func()     print getattr(obj, "aa") #完成对象的反射     print obj.aa     #callable方法,如果传入的参数是可以调用的函数,则返回true,否则返回false。     print callable(getattr(obj, "aa"))     output("string")
py3study
2020/01/09
3K0
Python函数参数传递机制
        最近在写代码的过程中,发现Python参数传递不是很明白。Python确实很灵活,但是灵活的后果就是要花更多的时间去研究。废话不多说,始めましょう!!!
py3study
2020/01/09
1K0
PHP在函数体中传递与接收参数
默认情况下,PHP是按值传递参数的。值传递参数调用函数时将常量或变量的值(通常称其为实参)传递给函数的参数(通常称为形参)。值传递的特点是实参与行参分别存储在内存中,是两个不相关的独立变量。因此,在函数内部改变形参的值时,实参的值一般是不会改变的。
用户7657330
2020/08/14
2.7K0
方法中参数传递
这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。
wfaceboss
2019/04/08
1.8K0
Python函数中的参数是如何传递的?
Python函数大家应该不陌生,那函数中的参数是如何传递的,你知道吗?我们先看一下下面的代码,和你想的预期结果是不是一样了?
罗罗攀
2021/12/06
3.7K0
Python函数中的参数是如何传递的?
【Python】函数进阶 ③ ( 函数作为参数传递 )
之前介绍的函数 , 都是 接收具体的 变量 或 字面量 数据 作为参数 , 如 : 数字 / 布尔值 / 字典 / 列表 / 元组 等 ;
韩曙亮
2023/10/11
4570
【Python】函数进阶 ③ ( 函数作为参数传递 )
Golang中函数传参存在引用传递吗?
官方文档已经明确说明:Go里边函数传参只有值传递一种方式,为了加强自己的理解,再来把每种传参方式进行一次梳理。
大愚
2018/09/13
2.3K0
Golang中函数传参存在引用传递吗?
Golang函数参数的值传递和引用传递
值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数
仙人技术
2021/08/31
2.5K0
Golang函数参数的值传递和引用传递
go语言:函数参数传递详解
参数传递是指在程序的传递过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。比较常见的参数传递有:值传递,按地址传递参数或者按数组传递参数。
李海彬
2018/07/26
9060
go语言:函数参数传递详解
python开发_函数的参数传递
在这个用例中,我们要讨论的是关于函数的传参问题 我所使用的python版本为3.3.2
Hongten
2018/09/13
1.1K0
java中的参数传递-值传递、引用传递
参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
chenchenchen
2022/11/29
4.7K0
java中的参数传递-值传递、引用传递
【Groovy】Groovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )
个方法 , 那么可以直接向 setOnClickListener 方法中传递一个闭包 , 该闭包相当于 OnClickListener 接口中的 onClick 方法 ;
韩曙亮
2023/03/30
4.7K0
【Groovy】Groovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )

相似问题

我可以将字符串传递到函数中吗

31

变量可以传递到函数名中吗?

11

可以将参数传递到事件绑定中吗?

21

可以将参数传递到枚举值中吗?

33

函数可以作为参数传递吗?

80
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文