c# - 如何指定数据库连接的传出 IP 地址?

标签 c# database oracle networking ip-address

我有一个具有多个 IP 地址的 Web 服务器需要连接到数据库服务器。数据库服务器位于由 IP 地址白名单控制的防火墙后面。 (如果重要的话,它是一个Oracle服务器。)有没有办法在OracleConnection中指定web服务器使用的IP地址,这样只需要将一个IP添加到白名单?

我看到有几个关于指定传出 IP 地址的类似问题(例如 this one 和从那里链接的一对),但没有一个特别提到数据库连接。

最佳答案

数据库方面没有(太多)发挥作用。

在我的简单网络上,我有一个调制解调器/路由器,它从我的 ISP 获取互联网 IP 地址,并为本地网络提供不同的 IP 地址。我已将其配置为将在端口 80(用于 HTTP 请求的端口)上发出的请求转发到本地网络上的特定 IP 地址。

IP 地址可以动态分配 (DHCP) 或静态分配。因为我希望我的 HTTP 请求转到特定的机器,所以我需要该机器始终具有相同的 IP 地址。一种方法是让机器在连接到网络时请求一个静态 IP 地址。另一种方法是让路由器动态分配 IP 地址,但始终为特定的 MAC 地址使用特定地址。我走了后一条路。您选择做什么以及如何做取决于您的情况(例如操作系统和网络设置)。

在您的情况下,您希望数据库服务器和 Web 服务器的本地网络地址都是静态的。这确实是一个网络问题。

只有当您有多个网络端口时,编程才可能发挥作用。拿我的笔记本电脑。它有一个 WiFi 卡和一个以太网端口。其中每一个都有一个唯一的 MAC 地址(实际上世界上每个网络设备都有一个唯一的 MAC 地址)。我可以将这些端口中的一个或两个连接到一个网络或两个不同的网络。

如果我将两个设备连接到同一个网络,它们必须具有不同的 IP 地址,因为 IP 地址对于网络来说必须是唯一的,这样网络才能知道将消息发送到哪里。如果我将它们连接到两个不同的网络,那么它们可能会获得相同的 IP 地址。 [互联网是一个大网络,但局域网 (LAN) 是独立的。]

如果您的机器有多个网络连接,您可能需要将特定连接定向到特定网络(所以我可能总是希望我的数据库连接使用 eth0 端口和其他东西使用 eth1 端口)。

关于c# - 如何指定数据库连接的传出 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037630/

相关文章:

c# - 在 ScrollView 中滚动到选定的 Treeviewitem

java - 带有嵌套对象的 Realm deleteAllFromRealm

mysql - 如何在 Oracle 中检查字符串中的特定位置

带主键的 Oracle 物化 View

c# - 如何从模型中的 IList<model> 获取 Id?

c# - 三元?运算符与 C# 中的传统 If-else 运算符

sql-server - 将所有表的日期更改为sql server中的日期时间数据类型

PHP 和 MySQL - 更改代码 ORDER BY

sql - 调整数据库表中每个 VARCHAR 列的大小 - Oracle 11g

c# - 如何使用自定义属性属性对类的属性进行排序