NAT及静态转换,动态转换及PAT
NAT及静态转换,动态转换及PAT
1 案例1:配置静态NAT
1.1 问题
随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,除了中国教育和科研计算机网(CERNET)外,一般用户几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求。
- 在R1上配置静态NAT使192.168.1.1转换为61.159.62.131,192.168.1.2转换为61.159.62.132,实现外部网络访问。
1.2 方案
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP地址空间的枯竭。而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
网络拓扑如图-1所示:
图-1
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:通用配置
1)配置R1端口IP地址,以及默认路由
- tarena-R1(config)#interface f0/0
- tarena-R1(config-if)#ip address 192.168.1.254 255.255.255.0
- tarena-R1(config-if)#no shutdown
- tarena-R1(config-if)#interface f0/1
- tarena-R1(config-if)#ip address 61.159.62.129 255.255.255.248
- tarena-R1(config-if)#no shutdown
- tarena-R1(config-if)#exit
- tarena-R1(config)#ip route 0.0.0.0 0.0.0.0 f0/1
2)配置R2端口IP地址
不需要在R2上配置到企业内网的静态路由,因为NAT的存在,企业内部的地址都将被转换、隐藏。
- tarena-R2(config)#interface f0/0
- tarena-R2(config-if)#ip address 61.159.62.130 255.255.255.248
- tarena-R2(config-if)#no shutdown
- tarena-R2(config-if)#interface f0/1
- tarena-R2(config-if)#ip address 192.168.2.254 255.255.255.0
- tarena-R2(config-if)#no shutdown
步骤二:静态NAT配置
1)在R1上将192.168.1.1映射到61.159.62.131,将192.168.1.2映射到61.159.62.132
静态映射有唯一对应的关系。
通过静态NAT,可以把内网服务器发布到外网。
- tarena-R1(config)#ip nat inside source static 192.168.1.1 61.159.62.131
- tarena-R1(config)#ip nat inside source static 192.168.1.2 61.159.62.132
2)在R1上配置NAT内、外端口
- tarena-R1(config)#interface f0/0
- tarena-R1(config-if)#ip nat inside
- tarena-R1(config-if)#interface f0/1
- tarena-R1(config-if)#ip nat outside
3)分别在两台PC机上测试到外网主机的通信
PC1测试如下所示:
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::2D0:FFFF:FE45:CACC
- IP Address......................: 192.168.1.1
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=1ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
- PC>
PC2的测试如下所示:
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::200:CFF:FEEA:DE30
- IP Address......................: 192.168.1.2
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Request timed out.
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 0ms, Average = 0ms
- PC>
4)在R1上查看NAT转换表
- tarena-R1#show ip nat translations
- Pro Inside global Inside local Outside local Outside global
- icmp 61.159.62.131:10 192.168.1.1:10 192.168.2.1:10 192.168.2.1:10
- icmp 61.159.62.131:11 192.168.1.1:11 192.168.2.1:11 192.168.2.1:11
- icmp 61.159.62.131:12 192.168.1.1:12 192.168.2.1:12 192.168.2.1:12
- icmp 61.159.62.131:9 192.168.1.1:9 192.168.2.1:9 192.168.2.1:9
- icmp 61.159.62.132:27 192.168.1.2:27 192.168.2.1:27 192.168.2.1:27
- icmp 61.159.62.132:28 192.168.1.2:28 192.168.2.1:28 192.168.2.1:28
- icmp 61.159.62.132:29 192.168.1.2:29 192.168.2.1:29 192.168.2.1:29
- icmp 61.159.62.132:30 192.168.1.2:30 192.168.2.1:30 192.168.2.1:30
2 案例2:配置端口映射
2.1 问题
通过端口映射技术将内部服务器发布向Internet。
2.2 方案
在R1上配置端口映射将192.168.1.3的80端口映射为61.159.62.133的80端口,将web服务器发布到Internet。网络拓扑如图-2所
图-2
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:通用配置
1)在案例一基础上取消静态转换条目,在192.168.1.0网络新增一台web服务器IP为192.168.1.3。将192.168.1.3的80端口映射为61.159.62.133的80端口
- tarena-R1(config)#no ip nat inside source static 192.168.1.1 61.159.62.131
- tarena-R1(config)#no ip nat inside source static 192.168.1.2 61.159.62.132
- tarena-R1 (config)#ip nat inside source static tcp 192.168.1.3 80 61.159.62.133 80
步骤二:PC3上访问web服务器进行验证
1)外部主机PC4上访问61.159.62.133进行验证,如图-3所示
图-3
3 案例3:配置动态NAT
3.1 问题
- 在R1通过动态NAT实现企业内网192.168.1.0/24转换为公网地址61.159.62.131-61.159.62.134,访问192.168.2.1
3.2 方案
网络拓扑如图-4所示:
图-4
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:动态NAT配置
1)删除案例2中的端口映射
- tarena-R1 (config)#no ip nat inside source static tcp 192.168.1.3 80 61.159.62.133 80
2)在R1上配置ACL
- tarena-R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
3)在R1上配置可转换的公网IP地址池
地址池是向ISP(Internet服务提供商,如电信、联通)申请得到的,内网主机(上一步ACL中所包含的IP地址)到外网的访问,内网地址将被动态的、随机的转换为这些合法地址。
- tarena-R1(config)#ip nat pool natpool 61.159.62.131 61.159.62.134 netmask 255.255.255.248
4)关联ACL和公网的IP地址池
- tarena-R1(config)#ip nat inside source list 1 pool natpool
5)在R1上配置NAT内、外端口
- tarena-R1(config)#interface f0/0
- tarena-R1(config-if)#ip nat inside
- tarena-R1(config-if)#interface f0/1
- tarena-R1(config-if)#ip nat outside
6)分别在两台PC机上测试到外网主机的通信
PC1测试如下所示:
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::2D0:FFFF:FE45:CACC
- IP Address......................: 192.168.1.1
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=1ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
- PC>
PC2测试如下所示:
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::2D0:FFFF:FE45:CACC
- IP Address......................: 192.168.1.2
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=1ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
7)在R1上查看NAT转换表
转换表中的对应关系是动态的,如192.168.1.1被转换为61.159.62.131,但是下一次对外网的访问很有可能被转换为其他地址。
- tarena-R1#show ip nat translations
- Pro Inside global Inside local Outside local Outside global
- icmp 61.159.62.131:1362192.168.1.1:1362 192.168.2.1:1362 192.168.2.1:1362
- icmp 61.159.62.131:1392192.168.1.1:1392 192.168.2.1:1392 192.168.2.1:1392
- icmp 61.159.62.131:1393192.168.1.1:1393 192.168.2.1:1393 192.168.2.1:1393
- icmp 61.159.62.131:1394192.168.1.1:1394 192.168.2.1:1394 192.168.2.1:1394
- icmp 61.159.62.132:13 192.168.1.2:13 192.168.2.1:13 192.168.2.1:13
- icmp 61.159.62.132:14 192.168.1.2:14 192.168.2.1:14 192.168.2.1:14
- icmp 61.159.62.132:15 192.168.1.2:15 192.168.2.1:15 192.168.2.1:15
- icmp 61.159.62.132:16 192.168.1.2:16 192.168.2.1:16 192.168.2.1:16
4 案例4:PAT配置
4.1 问题
在R1配置PAT端口多路复用使企业内网192.168.1.0/24复用f0/1端口的IP,实现外部网络的访问。
4.2 方案
网络拓扑如图-5所示:
图-5
4.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:基于端口的PAT配置限制
1)删除案例3中动态NAT配置
- tarena-R1(config)#no ip nat inside source list 1
- tarena-R1(config)#no ip nat pool natpool
- tarena-R1(config)#no access-list 1
2)在R1上配置ACL
- tarena-R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
3)关联ACL和路由器连接互联网的端口
该命令最后加上的overload表示复用。
- tarena-R1(config)#ip nat inside source list 1 interface f0/1 overload
4)在R1上配置NAT内、外端口
- tarena-R1(config)#interface f0/0
- tarena-R1(config-if)#ip nat inside
- tarena-R1(config-if)#interface f0/1
- tarena-R1(config-if)#ip nat outside
5)分别在两台PC机上测试到外网主机的通信
PC1测试如下所示:
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::2D0:FFFF:FE45:CACC
- IP Address......................: 192.168.1.1
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=1ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
- PC>
PC2测试如下所示:
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::2D0:FFFF:FE45:CACC
- IP Address......................: 192.168.1.2
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=1ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=126
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
- PC>
6)在R1上查看NAT转换表
- tarena-R1#show ip nat translations
- Pro Inside global Inside local Outside local Outside global
- icmp 61.159.62.129:2029192.168.1.1:2029 192.168.2.1:2029 192.168.2.1:2029
- icmp 61.159.62.129:2030192.168.1.1:2030 192.168.2.1:2030 192.168.2.1:2030
- icmp 61.159.62.129:2031192.168.1.1:2031 192.168.2.1:2031 192.168.2.1:2031
- icmp 61.159.62.129:2032192.168.1.1:2032 192.168.2.1:2032 192.168.2.1:2032
- icmp 61.159.62.129:2033192.168.1.1:2033 192.168.2.1:2033 192.168.2.1:2033
- icmp 61.159.62.129:2034192.168.1.1:2034 192.168.2.1:2034 192.168.2.1:2034
- icmp 61.159.62.129:2035192.168.1.1:2035 192.168.2.1:2035 192.168.2.1:2035
输出结果显示,所有的内网IP地址在访问外网前均被转换成了路由器端口的IP地址。
5 案例5:办公区Internet的访问
5.1 问题
在R1配置PAT端口多路复用使企业内网192.168.1.0/24复用f0/1端口的IP,实现外部网络的访问。
5.2 方案
网络拓扑如图-6所示:
图-6
5.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:在SM1划分vlan2、vlan3、vlan4 并给SM1配置虚端口IP并开启路由功能,1-4接口开启trunk
1)创建vlan并设置管理IP,开启路由功能,并把相应的接口划分到vlan下
- SM1 (config)ip routing
- SM1 (config)#vlan 2
- SM1 (config-vlan)#vlan 3
- SM1 (config-vlan)#vlan 4
- SM1 (config-vlan)#
- SM1 (config-vlan)#exit
- SM1 (config)#interface vlan 1
- SM1 (config-if)#ip address 192.168.1.254 255.255.255.0
- SM1 (config-if)#eixt
- SM1 (config-if)#no shutdown
- SM1 (config-if)#exit
- SM1 (config)#interface vlan 2
- SM1 (config-if)#ip address 192.168.2.254 255.255.255.0
- SM1 (config-if)#no shutdown
- SM1 (config-if)#exit
- SM1 (config)#interface vlan 3
- SM1 (config-if)#ip address 192.168.3.254 255.255.255.0
- SM1 (config-if)#no shutdown
- SM1 (config-if)#exit
- SM1 (config)#interface vlan 4
- SM1 (config-if)#ip address 192.168.4.254 255.255.255.0
- SM1 (config-if)#no shutdown
- sw2(config)#vlan 2
- sw2(config-vlan)#exit
- sw2(config)#interface fastEthernet 0/1
- sw2(config-if)#switchport access vlan 2
- sw3(config)#vlan 3
- sw3(config-vlan)#exit
- sw3(config)#interface fastEthernet 0/1
- sw3(config-if)#switchport access vlan 3
- sw4(config)#vlan 4
- sw4(config-vlan)#exit
- sw4(config)#interface fastEthernet 0/1
- sw4(config-if)#switchport access vlan 4
2)交换机之间所连接的接口开启trunk
- SM1(config)#interface range f0/1 - 4
- SM1 (config-if-range)#switchport trunk encapsulation dot1q
- SM1 (config-if-range)#switchport mode trunk
- sw1(config)#interface fastEthernet 0/3
- sw1(config-if)#switchport mode trunk
- sw2(config)#interface fastEthernet 0/3
- sw2(config-if)#switchport mode trunk
- sw3(config)#interface fastEthernet 0/3
- sw3(config-if)#switchport mode trunk
- sw4(config)#interface fastEthernet 0/3
- sw4(config-if)#switchport mode trunk
3)测试vlan之间的连通性
- PC>ipconfig
- FastEthernet0 Connection:(default port)
- Link-local IPv6 Address.........: FE80::290:21FF:FEC2:1A50
- IP Address......................: 192.168.1.1
- Subnet Mask.....................: 255.255.255.0
- Default Gateway.................: 192.168.1.254
- PC>ping 192.168.2.1
- Pinging 192.168.2.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.2.1: bytes=32 time=1ms TTL=12
- Ping statistics for 192.168.2.1:
- Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
- PC>ping 192.168.3.1
- Pinging 192.168.3.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.3.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.3.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.3.1: bytes=32 time=1ms TTL=127
- Ping statistics for 192.168.3.1:
- Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 1ms, Average = 0ms
- PC>ping 192.168.4.1
- Pinging 192.168.4.1 with 32 bytes of data:
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.2.1: bytes=32 time=0ms TTL=127
- Reply from 192.168.4.1: bytes=32 time=0ms TTL=127
- Ping statistics for 192.168.4.1:
- Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 0ms, Average = 0ms
4)为SM1与路由器连接的接口和路由器配置IP并启用动态路由RIP协议.
- SM1(config)#interface fastEthernet 0/5
- SM1(config-if)#no switchport
- SM1(config-if)#ip add 192.168.5.1 255.255.255.0
- SM1(config-if)#no shutdown
- SM1(config-if)#exit
- SM1(config)#router rip
- SM1(config-router)#version 2
- SM1(config-router)#no auto-summary
- SM1(config-router)#network 192.168.1.0
- SM1(config-router)#network 192.168.2.0
- SM1(config-router)#network 192.168.3.0
- SM1(config-router)#network 192.168.4.0
- SM1(config-router)#network 192.168.5.0
- Router(config)#interface fastEthernet 0/0
- Router(config-if)#ip address 192.168.5.2 255.255.255.0
- Router(config-if)#no shutdown
- Router(config-if)#exit
- Router(config)#interface fastEthernet 0/1
- Router(config-if)#ip address 61.159.62.129 255.255.255.248
- Router(config-if)#exit
- Router(config)#router rip
- Router(config-router)#version 2
- Router(config-router)#no auto-summary
- Router(config-router)#network 192.168.5.0
5)在路由器上配置默认路由并发布到RIP协议里并在三成交换机SM1上查看路由表
- Router(config)#ip route 0.0.0.0 0.0.0.0 f0/1
- Router(config)#router rip
- Router(config-router)#default-information originate
SM路由表如下所示:
- SM1# show ip route
- Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
- D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
- N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
- E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
- i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
- * - candidate default, U - per-user static route, o - ODR
- P - periodic downloaded static route
- Gateway of last resort is 192.168.5.2 to network 0.0.0.0
- C 192.168.1.0/24 is directly connected, Vlan1
- C 192.168.2.0/24 is directly connected, Vlan2
- C 192.168.3.0/24 is directly connected, Vlan3
- C 192.168.4.0/24 is directly connected, Vlan4
- C 192.168.5.0/24 is directly connected, FastEthernet0/5
- R* 0.0.0.0/0 [120/1] via 192.168.5.2, 00:00:18, FastEthernet0/5
6)在路由器上配置PAT
- Router(config)#access-list 1 permit 192.168.4.0 0.0.0.255
- Router(config)#ip nat inside source list 1 interface f0/1
- Router(config)#interface fastEthernet 0/0
- Router(config-if)#ip nat inside
- Router(config-if)#exit
- Router(config)#interface fastEthernet 0/1
- Router(config-if)#ip nat outside
7)用192.168.4.0和192.168.1.0测试网络连通性
PC1
- PC>ping 61.159.62.130
- Pinging 61.159.62.130 with 32 bytes of data:
- Request timed out.
- Request timed out.
- Request timed out.
- Request timed out.
- Ping statistics for 61.159.62.130:
- Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
PC4
- PC>ping 61.159.62.130
- Pinging 61.159.62.130 with 32 bytes of data:
- Reply from 61.159.62.130: bytes=32 time=0ms TTL=126
- Reply from 61.159.62.130: bytes=32 time=0ms TTL=126
- Reply from 61.159.62.130: bytes=32 time=0ms TTL=126
- Reply from 61.159.62.130: bytes=32 time=0ms TTL=126
- Ping statistics for 61.159.62.130:
- Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
- Approximate round trip times in milli-seconds:
- Minimum = 0ms, Maximum = 0ms, Average = 0ms
结果显示只有办公网可以访问Internet
NAT及静态转换,动态转换及PAT的更多相关文章
- 再谈Ubuntu和CentOS安装好之后的联网问题(桥接和NAT、静态和动态ip)(博主推荐)
不多说,直接上干货! 首先,普及概念. hostonly.桥接和NAT的联网方式 对于CentOS系统,用的最多的就是,NAT和桥接模式 CentOS 6.5静态IP的设置(NAT和桥接联网方式都适用 ...
- 行列转换之静态、动态、PIVOT方法
/* 标题:普通行列转换(version 2.0) 作者:爱新觉罗.毓华 时间:2008-03-09 地点:广东深圳 说明:普通行列转换(version 1.0)仅针对sql server 2000 ...
- PDF创建及动态转换控件程序包ActivePDF Portfolio
ActivePDF Portfolio是将4个activePDF最优秀的服务器产品捆绑成一个价格适中的控件程序包.它提供了开发一个完整的服务器端的PDF解决方案所需的一切. 具体功能: activeP ...
- mysql 行列动态转换(列联表,交叉表)
mysql 行列动态转换(列联表,交叉表) (1)动态,适用于列不确定情况 create table table_name( id int primary key, col1 char(2), col ...
- C/C++ 跨平台交叉编译、静态库/动态库编译、MinGW、Cygwin、CodeBlocks使用原理及链接参数选项
目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件 ...
- Linux 静态库&动态库调用
1.什么是库在windows平台和linux平台下都大量存在着库.本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于windows和linux的本质不同,因此二者库的二进制是不 ...
- jsp静态与动态包含的区别和联系
1. <%@ include file=” ”%>是指令元素.<jsp:include page=” ”/>是行为元素 2. 最终编译成java文件的数目不同. * 静态包含在 ...
- OpenCV:Debug和Release模式 && 静态和动态编译
1.Release和Debug的区别 Release版称为发行版,Debug版称为调试版. Debug中可以单步执行.跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢.Release版运行速度较 ...
- Linux中创建和使用静态库&动态库
库本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行 Linux下库的种类 linux下的库有两种:静态库和共享库(动态库). 二者的不同点在于代码被载入的时刻不同. 静态库的代码在 ...
随机推荐
- django 知识点小结
以下内容为用django写blog中的一些知识点,权当复习. 一.定义view 1.get_object_or_404()是用get()查询数据,如果不存在就直接返回404 参数: get_objec ...
- linux firewalld 防火墙操作命令
查看防火墙的状态systemctl status firewalldTomcat默认使用8080端口,如果防火墙开启,需要开通8080端口firewall-cmd --zone=public --ad ...
- 有关于python内置函数exec和eval一些见解笔记
eval是将函数内的字符串以计算式的方式进行计算并给与外部一个值. 例: a=eval('1+1') print(a) >>>>2 但是如果出现在函数内部字符串中进行赋值会抛出 ...
- Golang package轻量级KV数据缓存——go-cache源码分析
作者:Moon-Light-Dream 出处:https://www.cnblogs.com/Moon-Light-Dream/ 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须在文章中给出原文 ...
- postman设置测试环境
有时需要我们在不同的环境下跑相同的测试,就可以通过postman设置环境 展开环境切换下拉列表,点击[Manage Environments]
- 初识JVM:(一)JVM工作原理和流程
本文主要参考:http://blog.csdn.net/CSDN_980979768/article/details/47281037?locationNum=7&fps=1 声明:主要用于个 ...
- (转)C++中的new
转载自:http://blog.csdn.net/sparkliang/article/details/3650324 C++中的new其实是一个很糊弄人的术语,它有两种不同的含义,new运算符(ne ...
- java第二节课课后
动手动脑问题 : 程序源代码: //MethodOverload.java //Using overloaded methods public class MethodOverload { publi ...
- centOS6.5桌面版用不了中文输入法解决方案
1:centos6.5中 系统->首选项->输入法中选择“使用iBus(推荐)”,点击首选输入法n遍,没有任何效果. 2.我也弄了很多种方式包括用 yum install " ...
- ArchLinux - 脚本安装使用指南
前面不想废话,讲什么脚本说明,功能什么的!只讲使用方法,其他的可以去Gitee看,去Github看. 脚本虽然支持Boot和UEFI,但是我打算一起讲,因为它们安装时的区别,只有3处不同. 第一步 先 ...