[英]Is there a way to post to a local IP address from a hosted site with Django python?
我有一个控制器,该控制器的API仅可在本地网络上访问,其本地地址为10.0.1.7。 当我在本地网络( http://127.0.0.1:8000/ )上托管Django时,我能够成功发布到控制器API。 但是,当我在外部托管该网站(将其称为www.djangolan.com)时,该帖子不会执行。 我想知道是否有一种方法可以配置设置/权限,以便当我的机器连接到LAN时从www.djangolan.com网站发布信息时,它能够执行。
def user_created(request):
contents = {}
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
firstName = form.cleaned_data['firstName']
lastName = form.cleaned_data['lastName']
url = "http://adminname:password@10.0.1.7/api/"
fullName = lastName + " , " + firstName
createUserJSON = {"SetUser":
{"User": [{
"Name": fullName,
"Description": "",
"Attribute": [
{
"type": "",
"Name": "FirstName",
"Value": firstName
},
{
"type": "",
"Name": "LastName",
"Value": lastName
}
]
}]
}
}
r = requests.post(url,json=createUserJSON)
return render(request,'user_created.html',contents)
您使用的IP是私有IP或内部IP。 它是IP相对地址,只有您的专用网络(即LAN)才知道。
当您在公共域上托管站点时,API也需要在公共IP上托管。 因此,您必须找出局域网的公共IP,并在从外部网络连接时使用该IP。
公用IP地址是分配给计算设备以允许通过Internet直接访问的地址。 Web服务器,电子邮件服务器和可从Internet直接访问的任何服务器设备都是公用IP地址的候选者。 公共IP地址是全局唯一的,并且只能分配给唯一的设备。
为计算机分配专用IP地址后 ,本地设备会通过其专用IP地址查看此计算机。 但是,位于本地网络外部的设备不能直接通过专用IP地址进行通信,而是使用路由器的公共IP地址进行通信。
参考: https : //www.iplocation.net/public-vs-private-ip-address
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.