一,为什么建议使用ip命令代替ifconfig?

1,ifconfig所属的net-tools包已经不再被维护了

虽然可以用,但会发生看不到部分ip等情况,

[root@centos8 liuhongdi]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz [root@centos8 liuhongdi]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.51.20160912git.el8.x86_64

2,ip命令属于iproute这个包,是linux重点推荐的命令

大家过去用ifconfig成习惯的,还是要转到ip这个命令上来

[root@centos8 liuhongdi]# whereis ip
ip: /usr/sbin/ip /usr/share/man/man7/ip.7.gz /usr/share/man/man8/ip.8.gz [root@centos8 liuhongdi]# rpm -qf /usr/sbin/ip
iproute-4.18.0-15.el8.x86_64

如果找不到ip命令,可以用dnf安装

[root@centos8 liuhongdi]# dnf install iproute

3,ip命令的操作并未写入到磁盘中,当服务器重启时,这些配置会丢失,

所以大家如果是需要永久性保存的配置,建议使用nmcli做配置

请移动这一篇:

https://www.cnblogs.com/architectforest/p/12612562.html

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看ip命令的版本和帮助:

1,查看版本

[root@centos8 liuhongdi]# ip -V
ip utility, iproute2-ss180813

2,查看帮助:

[root@centos8 liuhongdi]# ip -help 

3,查看手册

[root@centos8 liuhongdi]# man ip

三,ip命令之link(网络设备)管理

link指network device,网络设备

1,列出所有的link

[root@centos8 liuhongdi]# ip link

2,只看指定的link设备

[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

3,查看指定link设备的收发包统计信息

# -s: 显示statistics

[root@centos8 liuhongdi]# ip -s link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
11593445 60054 0 0 0 0
TX: bytes packets errors dropped carrier collsns
164314 2331 0 0 0 0

4,只显示当前激活的网络设备

[root@centos8 liuhongdi]# ip link show up

5,停用一个网络设备

[root@centos8 liuhongdi]# ip link set ens33 down
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

注意 state是 DOWN

6,启用一个网络设备

[root@centos8 liuhongdi]# ip link set ens33 up
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

注意 state已恢复为UP

7,查看针对link可以做的操作:

[root@centos8 liuhongdi]# ip link set help

可以做的操作很多

比较常用的应该是修改mtu

8,关闭打开link的多播(multicast)功能:

[root@centos8 liuhongdi]# ip link set ens33 multicast off
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到MULTICAST已经被关闭了

[root@centos8 liuhongdi]# ip link set ens33 multicast on
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到MULTICAST已经被再次打开

9,配置link的mtu的大小

[root@centos8 liuhongdi]# ip link set ens33 mtu 1000
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到mtu已经被改成了1000

[root@centos8 liuhongdi]# ip link set ens33 mtu 1500
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到mtu已经被改回了1500

说明:什么是mtu?

Maximum Transmission Unit 最大传输单元,就是数据包封包的最大值,

超过这个值就需要拆分成多个包发送

mtu过大或过小有什么影响?

1、本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。

2、本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力不能完全发挥

可见过大或过小会带来网络的不稳定(丢包)或网速过慢

建议:就使用默认值1500就很安全,当网络有不正常现象时,

我们可以查看mtu是否被人为修改过以致产生网络异常

10,修改link的名字

说明:网卡运行时不能改名:

[root@centos8 liuhongdi]# ip link set ens33 name ens33link
RTNETLINK answers: Device or resource busy

先停用

[root@centos8 liuhongdi]# ip link set ens33 down
[root@centos8 liuhongdi]# ip link set ens33 name ens33link

改名完成后再激活

[root@centos8 liuhongdi]# ip link set ens33link up
[root@centos8 liuhongdi]# ip link show ens33link
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

11,修改link的mac地址:

[root@centos8 liuhongdi]# ip link show ens33link
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到 mac地址是:00:0c:29:bb:c5:a6

[root@centos8 liuhongdi]# ip link set ens33link down
[root@centos8 liuhongdi]# ip link set ens33link address 00:0c:29:bb:c5:a7 [root@centos8 liuhongdi]# ip link set ens33link up
[root@centos8 liuhongdi]# ip link show ens33link
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a7 brd ff:ff:ff:ff:ff:ff

说明:可以看到网卡地址已被修改成了00:0c:29:bb:c5:a7

四,ip命令之address(ip地址)管理

1,查看所有的ip地址:

# a,address,addr: 都是ip地址

[liuhongdi@centos8 ~]$ ip a

2,查看指定设备的ip

[root@centos8 liuhongdi]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.14/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
valid_lft 83751sec preferred_lft 83751sec
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute
valid_lft forever preferred_lft forever

3,分别查看设备的ipv4地址和ipv6地址

#-4 :显示ipv4地址

[root@centos8 liuhongdi]# ip -4 a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
valid_lft 85737sec preferred_lft 85737sec
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever

#-6 :显示ipv6地址

[root@centos8 liuhongdi]# ip -6 a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute
valid_lft forever preferred_lft forever

4,添加ip

[root@centos8 liuhongdi]# ip a add 192.168.5.15/24 dev ens33link
[root@centos8 liuhongdi]# ip a show ens33link
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a7 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.37/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33link
valid_lft 85844sec preferred_lft 85844sec
inet 192.168.5.15/24 scope global ens33link
valid_lft forever preferred_lft forever
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33link
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:febb:c5a7/64 scope link
valid_lft forever preferred_lft forever

可以看到ip已添加成功

5,删除ip

[root@centos8 liuhongdi]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.5.8/24 brd 192.168.5.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
valid_lft 86144sec preferred_lft 86144sec
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute
valid_lft forever preferred_lft forever

192.168.5.8/24是我们要删除的ip

[root@centos8 liuhongdi]# ip a del 192.168.5.8/24 dev ens33
[root@centos8 liuhongdi]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
valid_lft 86019sec preferred_lft 86019sec
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute
valid_lft forever preferred_lft forever

删除成功了

6,清除ip:指定ip

#flush: 清除ip

[root@centos8 liuhongdi]# ip a add 192.168.5.15/24 dev ens33
[root@centos8 liuhongdi]# ip a ls dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
valid_lft 80454sec preferred_lft 80454sec
inet 192.168.5.15/24 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute
valid_lft forever preferred_lft forever [root@centos8 liuhongdi]# ip a flush to 192.168.5.15/24
[root@centos8 liuhongdi]# ip a ls dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
valid_lft 80398sec preferred_lft 80398sec
inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute
valid_lft forever preferred_lft forever

7,清除ip: 指定设备:

[root@centos8 liuhongdi]# ip a flush dev ens33
[root@centos8 liuhongdi]# ip a ls dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可见ens33这个设备上已经没有ip了

五, ip命令使用例子之route管理

1,查看路由表

#ip r 等于 ip route,查看路由

[root@centos8 liuhongdi]# ip r
default via 192.168.3.1 dev ens33 proto static metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.14 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

2,添加默认路由

[root@centos8 liuhongdi]# ip route add default via 192.168.5.2 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.5.2 dev ens33
default via 192.168.3.1 dev ens33 proto static metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

3,删除默认路由

[root@centos8 liuhongdi]# ip route del default via 192.168.5.2 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.3.1 dev ens33 proto static metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

4,修改默认路由

[root@centos8 liuhongdi]# ip route add default via 192.168.5.2 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.5.2 dev ens33
default via 192.168.3.1 dev ens33 proto static metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
[root@centos8 liuhongdi]# ip route replace default via 192.168.5.4 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.5.4 dev ens33
default via 192.168.3.1 dev ens33 proto static metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown

5,设置到网络49.7.40/24的路由经过网关192.168.5.8

[root@centos8 liuhongdi]# ip route add 49.7.40/24 via 192.168.5.8
[root@centos8 liuhongdi]# ip r
default via 192.168.3.1 dev ens33 proto static metric 100
49.7.40.0/24 via 192.168.5.8 dev ens33

6,从路由表中删除一条记录:

[root@centos8 liuhongdi]# ip route del 49.7.40.0/24 via 192.168.5.8 dev ens33

六,ip命令使用例子之统计信息

# -s :统计信息

[root@centos8 liuhongdi]# ip -s link ls ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
3635277 17405 0 0 0 0
TX: bytes packets errors dropped carrier collsns
24862 301 0 0 0 0

# -s -s :统计信息,增加了 tx rx的错误信息

[root@centos8 liuhongdi]# ip -s -s link ls ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
3638862 17421 0 0 0 0
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
24862 301 0 0 0 0
TX errors: aborted fifo window heartbeat transns
0 0 0 0 2

七, ip命令使用例子之arp

1,查看mac地址的arp表

[root@centos8 liuhongdi]# ip neigh
192.168.3.1 dev ens33 lladdr fc:94:35:07:73:77 STALE
192.168.5.4 dev ens33 FAILED

2,添加一个mac和ip的对应项

[root@centos8 liuhongdi]# ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev ens33
[root@centos8 liuhongdi]# ip neigh
192.168.3.1 dev ens33 lladdr fc:94:35:07:73:77 STALE
192.168.1.100 dev ens33 lladdr 00:0c:29:c0:5a:ef PERMANENT
192.168.5.4 dev ens33 FAILED

添加已成功

3,删除一个mac和ip的对应项

[root@centos8 liuhongdi]# ip neigh del 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev ens33
[root@centos8 liuhongdi]# ip neigh
192.168.3.1 dev ens33 lladdr fc:94:35:07:73:77 STALE
192.168.5.4 dev ens33 FAILED

删除成功

八,查看centos版本

[root@centos8 conf]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

centos8平台使用ip命令代替ifconfig管理网络的更多相关文章

  1. ip命令和ifconfig命令(转载)

    Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  2. 试试Linux下的ip命令,ifconfig已经过时了

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  3. linux 下ip命令对比ifconfig命令

    原文:https://linux.cn/article-3144-1.html ------------------------------------------------------------ ...

  4. centos7 的Linux下ip命令替换ifconfig命令的用法

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  5. linux ip命令和ifconfig命令

    From https://blog.csdn.net/freeking101/article/details/68939059

  6. CentOS8中进行IP和主机名的网络配置的过程图解

    摘要: 很多人不知道如何在字符界面下配置主机名和ip,所以写了这个文章,本人也是新手,希望指出错误与不足.(本文只是在字符界面下教程) 一.输入你的账号密码登录 1)ifconfig 查看你目前的 主 ...

  7. Linux下的ip命令,除了ifconfig还有很多

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  8. ip 命令

    Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  9. linux命令总结之ip命令

    Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

随机推荐

  1. ajax之---上传图片和预览

    views.py def upload_img(request): nid=str(uuid.uuid4()) ret={'status':True,'data':None,'message':Non ...

  2. 深入分析Linux内核链表

    1. 普通单链表 2. 内核链表 上图是本人从其他博客盗来的,差点被糊弄过去. 下图是本人自己用KeyNote画的(唉!!画图真的是让人心好累啊!!). 差异是不是很明显啊?! Read The Fu ...

  3. 软件开发过程中常用的环境解释DEV FAT UAT PRO

    1.DEV Development environment 开发环境,用于开发者调试使用 2.FAT Feature Acceptance Test environment 功能验收测试环境,用于软件 ...

  4. Mysql数据分片技术(一)——初识表分区

    1. 为什么需要数据分片技术 2. 3种数据分片方式简述 3. 分片技术原理概述 4. 对单表分区的时机 1为什么需要数据分片技术 数据库产品的市场 在互联网行业内,绝大部分开发人员都会遇到数据表的性 ...

  5. Mysql实战(1):创建用户

    此文为个人实操汇总. 创建用户设置权限 create user 'user'@'%' identified by 'password'; #创建用户设置密码 grant all privileges ...

  6. 智慧出行--maas

    未来智慧出行新生态——MaaS系统的解读与畅想 -城市交通:观察与思考 - 未来智慧出行新生态——MaaS系统的解读与畅想 在货运领域,有一种承运方式叫“多式联运”,它是由承运人与货主签订一份货运合同 ...

  7. 2.Strom-入门案例

  8. SpringMVC执行流程和原理

    SpringMVC流程: 01.用户发送出请求到前端控制器DispatcherServlet. 02.DispatcherServlet收到请求调用HandlerMapping(处理器映射器). 03 ...

  9. ASP.NET Core 基于声明的访问控制到底是什么鬼?

    从ASP.NET 4.x到ASP.NET Core,内置身份验证已从基于角色的访问控制(RBAC)转变为基于声明的访问控制(CBAC). 我们常用的HttpContext.User属性ASP.NET ...

  10. python中获取中位数

    普通方法: 对列表进行排序,然后根据长度为奇数或者偶数的不同情况计算中位数 def huahua(x): length = len(x) print(length) x.sort() print(x) ...