<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[怡海通达EDP]]></title> 
<atom:link href="https://edp.harmonylinktech.cn/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[]]></description>
<link>https://edp.harmonylinktech.cn/</link>
<language>zh-cn</language>

<item>
    <title>医院网络中通过python自动查找终端接入位置</title>
    <link>https://edp.harmonylinktech.cn/?post=12</link>
    <description><![CDATA[<div style="background-color: #ffffff; color: #080808;">
<pre style="font-family: 'JetBrains Mono',monospace; font-size: 9.8pt;"><span style="font-size: 16px;">医院日常工作中，经常需要查找终端是从哪台交换机接入的。</span><br><span style="font-size: 16px;">由于交换机级联层数多，需要登陆多台交换机查找，以及设备命令不统一等原因。</span><br><span style="font-size: 16px;">用以下python代可以实现输入mac地址后，自动查找接入端口位置。<br>运行结果如下：<br></span><a href="/content/uploadfile/202607/ad1a1784707314.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/ad1a1784707314.png" alt="图片.png"></a></pre>
<pre style="font-family: 'JetBrains Mono',monospace; font-size: 9.8pt;"><br><span style="color: #0033b3;">import </span>xtelnet<br><span style="color: #0033b3;">import </span>re<br><br><span style="color: #0033b3;">class </span><span style="color: #000000;">Switch</span>:<br>    <span style="color: #0033b3;">def </span><span style="color: #b200b2;">__init__</span>(<span style="color: #94558d;">self</span>, <span style="color: #000000;">host</span>, <span style="color: #000000;">huawei_mac_address</span>, <span style="color: #000000;">cisco_mac_address</span>):<br>        <span style="color: #94558d;">self</span>.host = <span style="color: #000000;">host<br></span><span style="color: #000000;">        </span><span style="color: #94558d;">self</span>.brand = <span style="color: #0033b3;">None<br></span><span style="color: #0033b3;">        </span><span style="color: #94558d;">self</span>.huawei_mac_address = <span style="color: #000000;">huawei_mac_address<br></span><span style="color: #000000;">        </span><span style="color: #94558d;">self</span>.cisco_mac_address = <span style="color: #000000;">cisco_mac_address<br></span><span style="color: #000000;">        </span><span style="color: #94558d;">self</span>.learned_from_interface = <span style="color: #0033b3;">None<br></span><span style="color: #0033b3;">        </span><span style="color: #94558d;">self</span>.lldp_neighbor_ip = <span style="color: #0033b3;">None<br></span><span style="color: #0033b3;">        </span><span style="color: #94558d;">self</span>.port_type = <span style="color: #067d17;">"trunk"<br></span><span style="color: #067d17;">        </span><span style="color: #94558d;">self</span>.switch_session = xtelnet.Telnet_Session()<br>        <span style="color: #94558d;">self</span>.switch_session.connect(<span style="color: #94558d;">self</span>.host, <span style="color: #660099;">username</span>=<span style="color: #067d17;">'*****'</span>, <span style="color: #660099;">password</span>=<span style="color: #067d17;">'********.'</span>, <span style="color: #660099;">port</span>=<span style="color: #1750eb;">23</span>)<br>        <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #0037a6;">\n</span><span style="color: #067d17; font-family: 'Courier New',monospace;">已登陆</span><span style="color: #067d17;">:{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #94558d;">self</span>.host))<br>        <span style="color: #0033b3;">if </span><span style="color: #067d17;">'Huawei' </span><span style="color: #0033b3;">in </span><span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">'display version'</span>):<br>            <span style="color: #94558d;">self</span>.brand = <span style="color: #067d17;">"Huawei"<br></span><span style="color: #067d17;">        </span><span style="color: #0033b3;">else</span>:<br>            <span style="color: #94558d;">self</span>.brand = <span style="color: #067d17;">"Cisco"<br></span><span style="color: #067d17;">        </span><span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">当前设备品牌为</span><span style="color: #067d17;">:{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #94558d;">self</span>.brand))<br><br>    <span style="color: #8c8c8c; font-style: italic;"># </span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">查看</span><span style="color: #8c8c8c; font-style: italic;">mac</span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">地址是从哪个接口学习到的<br></span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">    </span><span style="color: #0033b3;">def </span><span style="color: #00627a;">get_learned_from</span>(<span style="color: #94558d;">self</span>):<br>        <span style="color: #0033b3;">try</span>:<br>            <span style="color: #0033b3;">if </span><span style="color: #94558d;">self</span>.brand == <span style="color: #067d17;">'Huawei'</span>:<br>                <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"display mac-address | inc {}"</span>.format(<span style="color: #94558d;">self</span>.huawei_mac_address))<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"mac</span><span style="color: #067d17; font-family: 'Courier New',monospace;">地址查询结果为：</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br>                <span style="color: #0033b3;">for </span><span style="color: #000000;">line </span><span style="color: #0033b3;">in </span><span style="color: #000000;">result</span>.splitlines():<br>                    <span style="color: #000000;">parts </span>= <span style="color: #000000;">line</span>.split()<br>                    <span style="color: #0033b3;">if </span><span style="color: #000080;">len</span>(<span style="color: #000000;">parts</span>) &gt;= <span style="color: #1750eb;">3 </span><span style="color: #0033b3;">and </span><span style="color: #000000;">parts</span>[<span style="color: #1750eb;">0</span>].strip() == <span style="color: #94558d;">self</span>.huawei_mac_address:<br>                        <span style="color: #94558d;">self</span>.learned_from_interface = <span style="color: #000000;">parts</span>[<span style="color: #1750eb;">2</span>]<br><br>                <span style="color: #0033b3;">if </span><span style="color: #94558d;">self</span>.learned_from_interface <span style="color: #0033b3;">and </span><span style="color: #067d17;">"Eth" </span><span style="color: #0033b3;">in </span><span style="color: #94558d;">self</span>.learned_from_interface:<br>                    <span style="color: #000000;">trunk_member </span>= re.sub(<span style="color: #067d17;">r'</span><span style="color: #067d17; background-color: #edfced;">^Eth-Trunk</span><span style="color: #067d17;">'</span>, <span style="color: #067d17;">''</span>, <span style="color: #94558d;">self</span>.learned_from_interface, <span style="color: #660099;">flags</span>=re.IGNORECASE)<br>                    <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"display eth {}"</span>.format(<span style="color: #000000;">trunk_member</span>))<br>                    <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">该</span><span style="color: #067d17;">mac</span><span style="color: #067d17; font-family: 'Courier New',monospace;">地址来自链路聚合口</span><span style="color: #067d17;">,</span><span style="color: #067d17; font-family: 'Courier New',monospace;">聚合口成员接口如下：</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br>                    <span style="color: #000000;">pattern </span>= <span style="color: #067d17;">r'^(\S+)\s+Selected\b'<br></span><span style="color: #067d17;">                    </span><span style="color: #000000;">match </span>= re.search(<span style="color: #000000;">pattern</span>, <span style="color: #000000;">result</span>, re.MULTILINE)<br>                    <span style="color: #0033b3;">if </span><span style="color: #000000;">match</span>:<br>                        <span style="color: #94558d;">self</span>.learned_from_interface = <span style="color: #000000;">match</span>.group(<span style="color: #1750eb;">1</span>)<br>            <span style="color: #0033b3;">else</span>:  <span style="color: #8c8c8c; font-style: italic;"># Cisco<br></span><span style="color: #8c8c8c; font-style: italic;">                </span><span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"show mac address-table | in {}"</span>.format(<span style="color: #94558d;">self</span>.cisco_mac_address))<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"mac</span><span style="color: #067d17; font-family: 'Courier New',monospace;">地址查询结果为：</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br>                <span style="color: #000000;">escaped_mac </span>= <span style="color: #94558d;">self</span>.cisco_mac_address.replace(<span style="color: #067d17;">"."</span>, <span style="color: #067d17;">"</span><span style="color: #0037a6;">\\</span><span style="color: #067d17;">."</span>)<br>                <span style="color: #000000;">pattern </span>= <span style="color: #067d17;">rf'</span><span style="color: #0037a6;">{</span><span style="color: #000000;">escaped_mac</span><span style="color: #0037a6;">}</span><span style="color: #067d17;">.*?(?:other|DYNAMIC)\s+(\S+)'<br></span><span style="color: #067d17;">                </span><span style="color: #000000;">matches </span>= re.findall(<span style="color: #000000;">pattern</span>, <span style="color: #000000;">result</span>, re.IGNORECASE)<br>                <span style="color: #0033b3;">if </span><span style="color: #000000;">matches</span>:<br>                    <span style="color: #94558d;">self</span>.learned_from_interface = <span style="color: #000000;">matches</span>[<span style="color: #1750eb;">0</span>]<br><br>                <span style="color: #0033b3;">if </span><span style="color: #94558d;">self</span>.learned_from_interface <span style="color: #0033b3;">and </span><span style="color: #067d17;">"Po" </span><span style="color: #0033b3;">in </span><span style="color: #94558d;">self</span>.learned_from_interface:<br>                    <span style="color: #000000;">trunk_member </span>= re.sub(<span style="color: #067d17;">r'</span><span style="color: #067d17; background-color: #edfced;">^Po</span><span style="color: #067d17;">'</span>, <span style="color: #067d17;">''</span>, <span style="color: #94558d;">self</span>.learned_from_interface, <span style="color: #660099;">flags</span>=re.IGNORECASE)<br>                    <span style="color: #0033b3;">if </span><span style="color: #000000;">trunk_member</span>:<br>                        <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"show etherchannel {} summary"</span>.format(<span style="color: #000000;">trunk_member</span>))<br>                        <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">该</span><span style="color: #067d17;">mac</span><span style="color: #067d17; font-family: 'Courier New',monospace;">地址来自链路聚合口</span><span style="color: #067d17;">,</span><span style="color: #067d17; font-family: 'Courier New',monospace;">聚合口成员接口如下：</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br>                        <span style="color: #000000;">match </span>= re.search(<span style="color: #067d17;">r'</span><span style="color: #067d17; background-color: #edfced;">(\S+)\(P\)</span><span style="color: #067d17;">'</span>, <span style="color: #000000;">result</span>)<br>                        <span style="color: #0033b3;">if </span><span style="color: #000000;">match</span>:<br>                            <span style="color: #8c8c8c; font-style: italic;"># print(match.group(1))<br></span><span style="color: #8c8c8c; font-style: italic;">                            </span><span style="color: #94558d;">self</span>.learned_from_interface = <span style="color: #000000;">match</span>.group(<span style="color: #1750eb;">1</span>)<br>        <span style="color: #0033b3;">except </span><span style="color: #000080;">Exception</span>:<br>            <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">未查询到该</span><span style="color: #067d17;">mac"</span>)<br><br>    <span style="color: #8c8c8c; font-style: italic;"># </span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">查看学习到该</span><span style="color: #8c8c8c; font-style: italic;">mac</span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">地址的</span><span style="color: #8c8c8c; font-style: italic;">lldp</span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">邻居<br></span><span style="color: #8c8c8c; font-style: italic; font-family: 'Courier New',monospace;">    </span><span style="color: #0033b3;">def </span><span style="color: #00627a;">get_lldp_neighbor</span>(<span style="color: #94558d;">self</span>):<br>        <span style="color: #0033b3;">if </span><span style="color: #94558d;">self</span>.brand == <span style="color: #067d17;">"Huawei"</span>:<br>                <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"dis lldp neighbor interface {}"</span>.format(<span style="color: #94558d;">self</span>.learned_from_interface))<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"lldp</span><span style="color: #067d17; font-family: 'Courier New',monospace;">邻居信息如下</span><span style="color: #067d17;">:</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br><br>                <span style="color: #000000;">pattern </span>= <span style="color: #067d17;">r'Management address\s+:\s*(\d+\.\d+\.\d+\.\d+)'<br></span><span style="color: #067d17;">                </span><span style="color: #000000;">match </span>= re.search(<span style="color: #000000;">pattern</span>, <span style="color: #000000;">result</span>)<br>                <span style="color: #0033b3;">if </span><span style="color: #000000;">match</span>:<br>                    <span style="color: #000000;">lldp_neighbor_ip </span>= <span style="color: #000000;">match</span>.group(<span style="color: #1750eb;">1</span>)<br>                    <span style="color: #000080;">print</span>(<span style="color: #067d17;">"lldp</span><span style="color: #067d17; font-family: 'Courier New',monospace;">邻居地址为</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">lldp_neighbor_ip</span>))<br>                    <span style="color: #94558d;">self</span>.lldp_neighbor_ip = <span style="color: #000000;">lldp_neighbor_ip<br></span><span style="color: #000000;">        </span><span style="color: #0033b3;">else</span>:<br>            <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"show lldp neighbors {} detail"</span>.format(<span style="color: #94558d;">self</span>.learned_from_interface))<br>            <span style="color: #0033b3;">if </span><span style="color: #067d17;">"Total entries displayed: 0" </span><span style="color: #0033b3;">not in </span><span style="color: #000000;">result </span><span style="color: #0033b3;">and </span><span style="color: #067d17;">"LLDP is not enabled" </span><span style="color: #0033b3;">not in </span><span style="color: #000000;">result</span>:<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"lldp</span><span style="color: #067d17; font-family: 'Courier New',monospace;">邻居信息如下</span><span style="color: #067d17;">   cisco :</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br>                <span style="color: #000000;">pattern </span>= <span style="color: #067d17;">r'Management Addresses:\s*\n\s*IP:\s*(\S+)'<br></span><span style="color: #067d17;">                </span><span style="color: #000000;">match </span>= re.search(<span style="color: #000000;">result</span>, <span style="color: #000000;">pattern</span>)<br>                <span style="color: #0033b3;">if </span><span style="color: #000000;">match</span>:<br>                    <span style="color: #000000;">lldp_neighbor_ip </span>= <span style="color: #000000;">match</span>.group(<span style="color: #1750eb;">1</span>)<br>                    <span style="color: #94558d;">self</span>.lldp_neighbor_ip = <span style="color: #000000;">lldp_neighbor_ip<br></span><span style="color: #000000;">            </span><span style="color: #0033b3;">else</span>:<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">该接口没有</span><span style="color: #067d17;">lldp</span><span style="color: #067d17; font-family: 'Courier New',monospace;">邻居，正在查询</span><span style="color: #067d17;">cdp</span><span style="color: #067d17; font-family: 'Courier New',monospace;">邻居</span><span style="color: #067d17;">"</span>)<br>                <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"show cdp neighbors {} detail"</span>.format(<span style="color: #94558d;">self</span>.learned_from_interface))<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"cdp</span><span style="color: #067d17; font-family: 'Courier New',monospace;">邻居信息如下</span><span style="color: #067d17;">:</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">{}</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>.format(<span style="color: #000000;">result</span>))<br>                <span style="color: #000000;">pattern </span>= <span style="color: #067d17;">r'Management address\(es\):\s*\n\s*IP address:\s*(\S+)'<br></span><span style="color: #067d17;">                </span><span style="color: #000000;">match </span>= re.search(<span style="color: #000000;">pattern</span>, <span style="color: #000000;">result</span>)<br>                <span style="color: #0033b3;">if </span><span style="color: #000000;">match</span>:<br>                    <span style="color: #000000;">ip </span>= <span style="color: #000000;">match</span>.group(<span style="color: #1750eb;">1</span>)<br>                    <span style="color: #94558d;">self</span>.lldp_neighbor_ip = <span style="color: #000000;">ip<br></span><span style="color: #000000;"><br></span><span style="color: #000000;">    </span><span style="color: #0033b3;">def </span><span style="color: #00627a;">get_port_type</span>(<span style="color: #94558d;">self</span>):<br>        <span style="color: #0033b3;">if </span><span style="color: #94558d;">self</span>.brand == <span style="color: #067d17;">"Huawei"</span>:<br>            <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"display current-configuration interface {}"</span>.format(<span style="color: #94558d;">self</span>.learned_from_interface))<br>        <span style="color: #0033b3;">else</span>:<br>            <span style="color: #000000;">result </span>= <span style="color: #94558d;">self</span>.switch_session.execute(<span style="color: #067d17;">"show run interface {}"</span>.format(<span style="color: #94558d;">self</span>.learned_from_interface))<br>        <span style="color: #0033b3;">if </span><span style="color: #067d17;">"trunk" </span><span style="color: #0033b3;">not in </span><span style="color: #000000;">result</span>:<br>            <span style="color: #94558d;">self</span>.port_type = <span style="color: #067d17;">"access"<br></span><span style="color: #067d17;"><br></span><span style="color: #067d17;">    </span><span style="color: #0033b3;">def </span><span style="color: #00627a;">start</span>(<span style="color: #94558d;">self</span>):<br>        <span style="color: #94558d;">self</span>.get_learned_from()<br>        <span style="color: #94558d;">self</span>.get_port_type()<br>        <span style="color: #0033b3;">try</span>:<br>            <span style="color: #94558d;">self</span>.get_lldp_neighbor()<br>        <span style="color: #0033b3;">except </span><span style="color: #000080;">Exception</span>:<br>            <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">未查询到邻居信息</span><span style="color: #067d17;">"</span>)<br>        <span style="color: #94558d;">self</span>.switch_session.close()<br>        <span style="color: #0033b3;">return </span><span style="color: #94558d;">self</span>.lldp_neighbor_ip<br><br><span style="color: #0033b3;">def </span><span style="color: #00627a;">get_mac</span>():<br>    <span style="color: #0033b3;">while True</span>:<br>        <span style="color: #0033b3;">try</span>:<br>            <span style="color: #000000;">mac_input </span>= <span style="color: #000080;">input</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">输入</span><span style="color: #067d17;">mac</span><span style="color: #067d17; font-family: 'Courier New',monospace;">地址</span><span style="color: #067d17;">(</span><span style="color: #067d17; font-family: 'Courier New',monospace;">格式为</span><span style="color: #067d17;">xx-xx-xx-xx-xx-xx): </span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>).strip()<br>            <span style="color: #000000;">mac_add </span>= <span style="color: #000000;">mac_input</span>.lower().split(<span style="color: #067d17;">'-'</span>)<br>            <span style="color: #0033b3;">if </span><span style="color: #000080;">len</span>(<span style="color: #000000;">mac_add</span>) != <span style="color: #1750eb;">6</span>:<br>                <span style="color: #0033b3;">raise </span><span style="color: #000080;">ValueError</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">输入格式必须为</span><span style="color: #067d17;">6</span><span style="color: #067d17; font-family: 'Courier New',monospace;">组两位十六进制数，用</span><span style="color: #067d17;">'-'</span><span style="color: #067d17; font-family: 'Courier New',monospace;">分隔</span><span style="color: #067d17;">"</span>)<br>            <span style="color: #0033b3;">for </span><span style="color: #000000;">part </span><span style="color: #0033b3;">in </span><span style="color: #000000;">mac_add</span>:<br>                <span style="color: #0033b3;">if </span><span style="color: #000080;">len</span>(<span style="color: #000000;">part</span>) != <span style="color: #1750eb;">2 </span><span style="color: #0033b3;">or not </span><span style="color: #000080;">all</span>(<span style="color: #000000;">c </span><span style="color: #0033b3;">in </span><span style="color: #067d17;">'0123456789abcdef' </span><span style="color: #0033b3;">for </span><span style="color: #000000;">c </span><span style="color: #0033b3;">in </span><span style="color: #000000;">part</span>):<br>                    <span style="color: #0033b3;">raise </span><span style="color: #000080;">ValueError</span>(<span style="color: #067d17;">f"'</span><span style="color: #0037a6;">{</span><span style="color: #000000;">part</span><span style="color: #0037a6;">}</span><span style="color: #067d17;">' </span><span style="color: #067d17; font-family: 'Courier New',monospace;">不是合法的两位十六进制数</span><span style="color: #067d17;">"</span>)<br>            <span style="color: #000000;">blocks </span>= [<span style="color: #067d17;">''</span>.join(<span style="color: #000000;">mac_add</span>[<span style="color: #000000;">i</span>:<span style="color: #000000;">i </span>+ <span style="color: #1750eb;">2</span>]) <span style="color: #0033b3;">for </span><span style="color: #000000;">i </span><span style="color: #0033b3;">in </span><span style="color: #000080;">range</span>(<span style="color: #1750eb;">0</span>, <span style="color: #1750eb;">6</span>, <span style="color: #1750eb;">2</span>)]<br>            <span style="color: #0033b3;">return </span><span style="color: #067d17;">'-'</span>.join(<span style="color: #000000;">blocks</span>), <span style="color: #067d17;">'.'</span>.join(<span style="color: #000000;">blocks</span>)<br>        <span style="color: #0033b3;">except </span><span style="color: #000080;">ValueError </span><span style="color: #0033b3;">as </span><span style="color: #000000;">e</span>:<br>            <span style="color: #000080;">print</span>(<span style="color: #067d17;">f"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">输入错误</span><span style="color: #067d17;">: </span><span style="color: #0037a6;">{</span><span style="color: #000000;">e</span><span style="color: #0037a6;">}</span><span style="color: #067d17; font-family: 'Courier New',monospace;">，请重新输入。</span><span style="color: #067d17;">"</span>)<br><br><span style="color: #0033b3;">def </span><span style="color: #00627a;">get_gateway</span>():<br>    <span style="color: #000000;">gateway_list </span>= [<span style="color: #067d17;">'192.168.6.252'</span>,<span style="color: #067d17;">'192.168.6.249'</span>, <span style="color: #067d17;">'10.3.1.1','192.168.6.254'</span>]<br>    <span style="color: #0033b3;">while True</span>:<br>        <span style="color: #000000;">gateway_ip </span>= <span style="color: #000080;">input</span>(<span style="color: #067d17;">"</span><span style="color: #0037a6;">\n</span><span style="color: #067d17; font-family: 'Courier New',monospace;">输入网关位置：</span><span style="color: #067d17;">"<br></span><span style="color: #067d17;">                           "</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">1----1</span><span style="color: #067d17; font-family: 'Courier New',monospace;">号楼汇聚</span><span style="color: #067d17;">"<br></span><span style="color: #067d17;">                           "</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">2----2</span><span style="color: #067d17; font-family: 'Courier New',monospace;">号楼汇聚</span><span style="color: #067d17;">"<br></span><span style="color: #067d17;">                           "</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">3----3</span><span style="color: #067d17; font-family: 'Courier New',monospace;">号楼汇聚</span><span style="color: #067d17;">"<br></span><span style="color: #067d17;">                           "</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">0----</span><span style="color: #067d17; font-family: 'Courier New',monospace;">核心交换机</span><span style="color: #0037a6;">\n</span><span style="color: #067d17;">"</span>).strip()<br>        <span style="color: #0033b3;">if not </span><span style="color: #000000;">gateway_ip</span>.isdigit():<br>            <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">输入错误：必须为纯数字，请重新输入。</span><span style="color: #067d17;">"</span>)<br>            <span style="color: #0033b3;">continue<br></span><span style="color: #0033b3;">        try</span>:<br>            <span style="color: #000000;">host </span>= <span style="color: #000000;">gateway_list</span>[<span style="color: #000080;">int</span>(<span style="color: #000000;">gateway_ip</span>)]<br>        <span style="color: #0033b3;">except </span><span style="color: #000080;">IndexError</span>:<br>            <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">输入的编号不存在，请重新输入：</span><span style="color: #067d17;">"</span>)<br>            <span style="color: #0033b3;">continue<br></span><span style="color: #0033b3;">        return </span><span style="color: #000000;">host<br></span><span style="color: #000000;"><br></span><span style="color: #0033b3;">if </span>__name__ == <span style="color: #067d17;">"__main__"</span>:<br>    <span style="color: #0033b3;">while True</span>:<br>        huawei_mac_address, cisco_mac_address = get_mac()<br>        gateway = Switch(get_gateway(), huawei_mac_address, cisco_mac_address)<br>        target_ip = gateway.start()<br>        n = <span style="color: #1750eb;">0<br></span><span style="color: #1750eb;">        </span><span style="color: #0033b3;">while True</span>:<br>            <span style="color: #0033b3;">if </span>n == <span style="color: #1750eb;">0</span>:<br>                neighbor_ip = target_ip<br>            <span style="color: #0033b3;">try</span>:<br>                acc_switch = Switch(neighbor_ip, huawei_mac_address, cisco_mac_address)<br>            <span style="color: #0033b3;">except </span><span style="color: #000080;">Exception</span>:<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">查询失败</span><span style="color: #067d17;">"</span>)<br>                <span style="color: #0033b3;">break<br></span><span style="color: #0033b3;">            </span>neighbor_ip = acc_switch.start()<br>            n += <span style="color: #1750eb;">1<br></span><span style="color: #1750eb;">            </span><span style="color: #0033b3;">if </span>acc_switch.port_type == <span style="color: #067d17;">"access"</span>:<br>                <span style="color: #000080;">print</span>(<span style="color: #067d17;">"</span><span style="color: #067d17; font-family: 'Courier New',monospace;">该</span><span style="color: #067d17;">mac</span><span style="color: #067d17; font-family: 'Courier New',monospace;">地址从</span><span style="color: #067d17;"> {} </span><span style="color: #067d17; font-family: 'Courier New',monospace;">的</span><span style="color: #067d17;"> {} </span><span style="color: #067d17; font-family: 'Courier New',monospace;">口接入</span><span style="color: #0037a6;">\n\n\n</span><span style="color: #067d17;">"</span>.format(acc_switch.host, acc_switch.learned_from_interface))<br>                <span style="color: #0033b3;">break<br></span><span style="color: #0033b3;"><br></span><span style="color: #0033b3;"><br></span><span style="color: #8c8c8c; font-style: italic;"><br></span></pre>
</div>]]></description>
    <pubDate>Wed, 22 Jul 2026 15:32:56 +0800</pubDate>
    <dc:creator>章成绩</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=12</guid>
</item>
<item>
    <title>7月10日-服务器IUse占满</title>
    <link>https://edp.harmonylinktech.cn/?post=11</link>
    <description><![CDATA[<p class="MsoNormal"><span style="font-family: Times New Roman;">服务器</span><span style="font-family: Calibri;">ip</span><span style="font-family: Times New Roman;">：</span><span style="font-family: Calibri;">106.52.21.251</span><span style="font-family: Times New Roman;">（怡海通达服务器）</span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">外部地址</span><span style="font-family: Calibri;">: &nbsp;http://106.52.21.251:35991/a16a42175c </span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">内部地址</span><span style="font-family: Calibri;">: &nbsp;http://10.1.24.15:35991/a16a42175c </span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">面板用户</span><span style="font-family: Calibri;">: &nbsp;d2b7fa67c1 </span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">面板密码</span><span style="font-family: Calibri;">: &nbsp;22d0c82b70</span></p>
<p><a href="/content/uploadfile/202607/d2b51784103432.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/d2b51784103432.png" alt="image.png"></a></p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">原本网站的</span><span style="font-family: Calibri;">Answer</span><span style="font-family: Times New Roman;">有</span><span style="font-family: Times New Roman;">很大漏洞，占用服务器的索引值，首先删除</span><span style="font-family: Calibri;">Answer</span><span style="font-family: Times New Roman;">。</span></p>
<p><a href="/content/uploadfile/202607/d2b51784103444.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/d2b51784103444.png" alt="image.png"></a></p>
<p class="MsoNormal"><span style="font-family: 宋体;">释放</span><span style="font-family: Calibri;">git</span><span style="font-family: 宋体;">的文件，按下面语句执行即可</span></p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">新增</span><span style="font-family: Calibri;">CRON</span><span style="font-family: Times New Roman;">任务，每天自动清理</span></p>
<p class="pre"><em># 编辑 crontab</em>crontab&nbsp;-e</p>
<p class="pre"><em># 添加以下行（每天凌晨 3 点执行）</em></p>
<p class="pre">0&nbsp;3&nbsp;* * * find&nbsp;/opt/1panel/apps/gitea/gitea/data/git/repositories -type&nbsp;d -name&nbsp;"*pte*"&nbsp;-exec&nbsp;rm&nbsp;-rf&nbsp;{}&nbsp;\;&nbsp;2&gt;/dev/null</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">（已安装</span><span style="font-family: Calibri;">git</span><span style="font-family: Times New Roman;">命令，跳过下面两步）</span></p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">进入</span><span style="font-family: Calibri;">git</span><span style="font-family: Times New Roman;">容器</span></p>
<p class="pre">docker&nbsp;exec&nbsp;-it&nbsp;$(docker ps -q --filter "name=gitea")&nbsp;/bin/bash</p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">安装</span><span style="font-family: Calibri;">git</span><span style="font-family: Times New Roman;">命令</span></p>
<p class="pre">apk add&nbsp;git</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoToc2"><span style="font-family: Times New Roman;">执行</span><span style="font-family: Calibri;">git gc </span><span style="font-family: Times New Roman;">进行优化</span></p>
<p class="MsoNormal">cd /data/git/repositories</p>
<p class="MsoNormal"># <span style="font-family: Times New Roman;">使用普通的 </span><span style="font-family: Calibri;">git gc</span><span style="font-family: Times New Roman;">，不会影响仓库数据，但能有效打包松散对象并删除垃圾</span><span style="font-family: Calibri;">[citation:3][citation:6]</span></p>
<p class="MsoNormal">find . -type d -name "*.git" -exec sh -c 'cd "{}" &amp;&amp; echo "<span style="font-family: Times New Roman;">正在优化</span><span style="font-family: Calibri;">: {}" &amp;&amp; git gc --prune=now' \;</span></p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">重新启动容器</span></p>
<p><a href="/content/uploadfile/202607/d2b51784103456.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/d2b51784103456.png" alt="image.png"></a></p>]]></description>
    <pubDate>Wed, 15 Jul 2026 16:16:46 +0800</pubDate>
    <dc:creator>管理员</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=11</guid>
</item>
<item>
    <title>医院3号楼国际病区无线网络卡顿故障处理</title>
    <link>https://edp.harmonylinktech.cn/?post=10</link>
    <description><![CDATA[<p>&nbsp;</p>
<p><span style="font-size: 18px;">1. 用户反映3号楼国际病区无线网络卡顿。到现场后发现该区域有AP，且AP指示灯正常。进入AC后台，通过&ldquo;闪灯&rdquo;功能找到对应的AP</span></p>
<p><span style="font-size: 18px;"><a href="/content/uploadfile/202607/ad1a1783051430.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/ad1a1783051430.png" alt="图片.png"></a></span></p>
<p>&nbsp;</p>
<p><span style="font-size: 18px;">2. 发现该AP在用户接入数为0的情况下，CPU使用率却高达94%</span></p>
<p><span style="font-size: 18px;"><a href="/content/uploadfile/202607/ad1a1783059476.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/ad1a1783059476.png" alt="图片.png"></a></span></p>
<p><span style="font-size: 18px;">3. 对该AP重启后，再连接终端测试后，可以正常使用了</span></p>
<p><a href="/content/uploadfile/202607/ad1a1783060457.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202607/ad1a1783060457.png" alt="图片.png"></a></p>
<p>&nbsp;</p>]]></description>
    <pubDate>Fri, 03 Jul 2026 11:54:23 +0800</pubDate>
    <dc:creator>章成绩</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=10</guid>
</item>
<item>
    <title>git权限问题</title>
    <link>https://edp.harmonylinktech.cn/?post=9</link>
    <description><![CDATA[<p class="MsoNormal"><span style="font-family: Times New Roman;">服务器</span><span style="font-family: Calibri;">ip</span><span style="font-family: Times New Roman;">：</span><span style="font-family: Calibri;">106.52.21.251</span><span style="font-family: Times New Roman;">（怡海通达服务器）</span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">外部地址</span><span style="font-family: Calibri;">: &nbsp;http://106.52.21.251:35991/a16a42175c </span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">内部地址</span><span style="font-family: Calibri;">: &nbsp;http://10.1.24.15:35991/a16a42175c </span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">面板用户</span><span style="font-family: Calibri;">: &nbsp;d2b7fa67c1 </span></p>
<p class="MsoNormal"><span style="font-family: Calibri;">[1Panel Log]: </span><span style="font-family: Times New Roman;">面板密码</span><span style="font-family: Calibri;">: &nbsp;22d0c82b70<img src="/content/uploadfile/202606/b6c31782457524.png" alt="图片1.png" width="1226" height="431"><img src="/content/uploadfile/202606/71421782457539.png" alt="图片2.png" width="384" height="107"></span></p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">重建</span><span style="font-family: Calibri;">git</span><span style="font-family: Times New Roman;">后，会使</span><span style="font-family: Calibri;">git</span><span style="font-family: Times New Roman;">文件权限重置，需要重新进行设置，按下面语句执行即可</span></p>
<p class="MsoToc2"># 1. <span style="font-family: Times New Roman;">修复整个仓库目录的所有者为 </span><span style="font-family: Calibri;">git </span><span style="font-family: Times New Roman;">用户 </span><span style="font-family: Calibri;">(UID 1000)</span></p>
<p class="MsoToc2">chown -R 1000:1000 /opt/1panel/apps/gitea/gitea/data/git/repositories/admin/jg_nursery_school.git</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoToc2"># 2. <span style="font-family: Times New Roman;">设置正确的目录权限</span></p>
<p class="MsoToc2">cd /opt/1panel/apps/gitea/gitea/data/git/repositories/admin/jg_nursery_school.git</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoToc2"># <span style="font-family: Times New Roman;">基础权限</span></p>
<p class="MsoToc2">find . -type d -exec chmod 755 {} \;</p>
<p class="MsoToc2">find . -type f -exec chmod 644 {} \;</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoToc2"># logs <span style="font-family: Times New Roman;">和 </span><span style="font-family: Calibri;">refs </span><span style="font-family: Times New Roman;">目录需要组写权限（因为 </span><span style="font-family: Calibri;">git </span><span style="font-family: Times New Roman;">进程需要写入）</span></p>
<p class="MsoToc2">chmod -R 775 logs/ refs/ objects/</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoToc2"># 3. <span style="font-family: Times New Roman;">确保 </span><span style="font-family: Calibri;">hsm </span><span style="font-family: Times New Roman;">分支的日志文件存在并可写</span></p>
<p class="MsoToc2">touch logs/refs/heads/hsm</p>
<p class="MsoToc2">chmod 664 logs/refs/heads/hsm</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"># <span style="font-family: Times New Roman;">检查权限是否正确</span></p>
<p class="MsoNormal">ls -la /opt/1panel/apps/gitea/gitea/data/git/repositories/admin/jg_nursery_school.git/logs/refs/heads/</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"># <span style="font-family: Times New Roman;">应该看到所有者和组都是 </span><span style="font-family: Calibri;">1000</span></p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoNormal"># <span style="font-family: Times New Roman;">重启 </span><span style="font-family: Calibri;">Gitea </span><span style="font-family: Times New Roman;">容器</span></p>
<p class="MsoNormal">docker restart 2023d3b9bb32</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoToc2"># <span style="font-family: Times New Roman;">快速验证</span></p>
<p class="MsoToc2">stat /opt/1panel/apps/gitea/gitea/data/git/repositories/admin/jg_nursery_school.git/objects | grep Uid</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoToc2"><span style="font-family: Times New Roman;">设置完</span><span style="font-family: Calibri;">git</span><span style="font-family: Times New Roman;">文件编辑权限后，即可正常推送</span></p>
<p class="MsoToc2"><span style="font-family: Times New Roman;"><img src="/content/uploadfile/202606/05261782457558.png" alt="图片3.png" width="1205" height="455"></span></p>]]></description>
    <pubDate>Fri, 26 Jun 2026 15:03:52 +0800</pubDate>
    <dc:creator>管理员</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=9</guid>
</item>
<item>
    <title>急诊终端访问医保系统卡顿</title>
    <link>https://edp.harmonylinktech.cn/?post=8</link>
    <description><![CDATA[<ol>
<li>终端IP：10.1.65.71， 服务器IP：192.168.103.112，在网关上ping终端和服务器地址，均无丢包和响应延迟等情况。
<p><a href="/content/uploadfile/202606/ad1a1781251163.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/ad1a1781251163.png" alt="图片.png"></a></p>
<p><a href="/content/uploadfile/202606/ad1a1781251163.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/ad1a1781251184.png" alt="图片.png"></a></p>
<p>&nbsp;</p>
</li>
<li>&nbsp;跟负责安全的同事反应，答复流量并未经过防火墙。在派网系统查询访问记录后，发现是因为服务器原因导致。终端在访问服务器的9500端口时，服务器端的响应延时较高
<p><a href="/content/uploadfile/202606/ad1a1781251788.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/ad1a1781251788.png" alt="图片.png"></a></p>
</li>
</ol>]]></description>
    <pubDate>Fri, 12 Jun 2026 15:53:16 +0800</pubDate>
    <dc:creator>章成绩</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=8</guid>
</item>
<item>
    <title>佛山市机关幼儿园智慧云盘操作指南</title>
    <link>https://edp.harmonylinktech.cn/?post=7</link>
    <description><![CDATA[<p class="MsoNormal" align="center"><strong><span style="font-family: 宋体;">佛山市机关幼儿园智慧云盘操作指南</span></strong></p>
<p class="MsoNormal"><span style="font-family: 等线;">一、</span><span style="font-family: 等线;">外网</span><span style="font-family: 等线;">pc访问网盘操作：</span></p>
<p class="MsoNormal"><span style="font-family: 等线;">网页打开</span><span style="font-family: 等线;">https://</span>219.130.221.93/</p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/b6c31781230527.png" alt="图片1.png" width="1267" height="792"></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: 等线;">点击下载客户端，选择对应</span><span style="font-family: 等线;">pc平台下载安装，如windows；</span></p>
<p class="MsoNormal"><a href="/content/uploadfile/202606/71421781230566.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/71421781230566.png" alt="图片2.png" width="1440" height="862"></a></p>
<p class="MsoNormal"><span style="font-family: 等线;">安装好后，</span><span style="font-family: 等线;">，出现下面界面后输入</span><span style="font-family: 等线;">vpn账号、密码和验证码：</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/05261781230619.png" alt="图片3.png" width="953" height="609"></p>
<p class="MsoNormal"><span style="font-family: 等线;">点击登录后，会要求手机接收验证码，输入验证码登录即可：</span></p>
<p class="MsoNormal">&nbsp;<img src="/content/uploadfile/202606/1ed01781230627.png" alt="图片4.png" width="1269" height="817"></p>
<p class="MsoNormal"><span style="font-family: 等线;">登录成功后会弹出以下页面，即表示</span><span style="font-family: 等线;">vpn登录成功：</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/95101781230637.png" alt="图片5.png" width="978" height="629">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: 等线;">在</span><span style="font-family: 等线;">pc上打开浏览器，输入</span>https://19.128.29.204:5001/</p>
<p class="MsoNormal"><span style="font-family: 等线;">弹出一下页面</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/560d1781230686.png" alt="图片6.png" width="1269" height="678"></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: 等线;">输入账号和密码登录到下面界面，点击图标</span><span style="font-family: 等线;">File</span>&nbsp;<span style="font-family: 等线;">Station就可以上传、下载文件了</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/1e1b1781230699.png" alt="图片7.png" width="1269" height="674"></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/914f1781230708.png" alt="图片8.png" width="1269" height="675"></p>
<p class="MsoNormal"><span style="font-family: 等线;">选择文件，鼠标右键会出现下载按钮：</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/4d7c1781230720.png" alt="图片9.png" width="1269" height="675"></p>
<p class="MsoNormal"><span style="font-family: 等线;">点击上传能单个或批量上传文件：</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/124d1781230729.png" alt="图片10.png" width="1269" height="667"></p>]]></description>
    <pubDate>Fri, 12 Jun 2026 10:08:12 +0800</pubDate>
    <dc:creator>陈珣</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=7</guid>
</item>
<item>
    <title>6月25日-佛山市第一人民医院-电脑不能访问部分服务器</title>
    <link>https://edp.harmonylinktech.cn/?post=6</link>
    <description><![CDATA[<p>1.192.168.101.13 电脑 访问不了192.168.100.231 192.168.102.63&nbsp;</p>
<p><a href="/content/uploadfile/202606/68991780643261.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/68991780643261.png" alt="3c4d5b456563398dc223734780e0d53d.png"></a></p>
<p>2.在目标地址的网关上查询arp表及mac地址表</p>
<p><a href="/content/uploadfile/202606/ad1a1780643426.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/ad1a1780643445.png" alt="图片.png"></a></p>
<p>3.发现该目标mac是从服务器区域学习到的</p>
<p><a href="/content/uploadfile/202606/ad1a1780643510.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/ad1a1780643510.png" alt="图片.png"></a></p>
<p>4.用其它电脑可以访问2个服务器地址</p>
<p><a href="/content/uploadfile/202606/ad1a1780643650.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/ad1a1780643650.png" alt="图片.png"></a></p>
<p>5.原因是服务器区域的防火墙没有对源地址192.168.101.13放行，已联系网络安全的同事增加放行策略后，测试可以正常访问</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description>
    <pubDate>Fri, 05 Jun 2026 15:05:49 +0800</pubDate>
    <dc:creator>章成绩</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=6</guid>
</item>
<item>
    <title>1月23日-机关幼儿园（东平园）-wps UOS部分问题教程</title>
    <link>https://edp.harmonylinktech.cn/?post=5</link>
    <description><![CDATA[<p class="MsoNormal" style="tab-stops: left blank 15.6000pt; mso-list: l0 level1 lfo1;"><!-- [if !supportLists]--><span style="font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="mso-list: Ignore;">1.&nbsp;</span></span><!--[endif]--><span style="mso-spacerun: 'yes'; font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">替换系统里的</span><span style="font-family: 宋体;">publish和authwebsite文件</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">路径：</span><span style="font-family: 宋体;">~/.local/share/Kingsoft/wps/jsaddons</span></span></p>
<p><a href="/content/uploadfile/202606/b6c31780450984.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/b6c31780450984.png" alt="图片1.png"></a></p>
<p class="MsoNormal" style="tab-stops: left blank 15.6000pt; mso-list: l0 level1 lfo1;"><!-- [if !supportLists]--><span style="font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="mso-list: Ignore;">2.&nbsp;</span></span><!--[endif]--><span style="mso-spacerun: 'yes'; font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">打开</span><span style="font-family: 宋体;">wps调试器</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">oem文件路径</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">/opt/apps/cn.wps.wps-office-pro/files/kingsoft/wps-office/office6/cfgs/oem.ini</span></span></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">将系统里的</span><span style="font-family: 宋体;">oem文件加入如下配置</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">IgnoreSslErrors=true</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">JsapiUseHttpsServer=true</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">HttpsSecurityBypass=true</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">文件配置（</span><span style="font-family: 宋体;">support栏下配置）</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">JsApiShowWebDebugger=true</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">启动加载项</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">cd /opt/apps/cn.wps.wps-office-pro/files/bin</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">./quickstartoffice restart</span></span></p>
<p class="MsoNormal"><span style="mso-spacerun: 'yes'; font-family: 宋体; font-variant: normal; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;">&nbsp;</span></p>
<p class="MsoNormal" style="tab-stops: left blank 15.6000pt; mso-list: l0 level1 lfo1;"><!-- [if !supportLists]--><span style="font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="mso-list: Ignore;">3.&nbsp;</span></span><!--[endif]--><span style="mso-spacerun: 'yes'; font-family: 宋体; font-size: 14.0000pt; mso-font-kerning: 1.0000pt;"><span style="font-family: 宋体;">设置</span><span style="font-family: 宋体;">uos浏览器wps证书</span></span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 宋体; font-variant: small-caps; font-size: 10.5000pt; mso-font-kerning: 1.0000pt;">&nbsp;</span></p>
<p class="MsoToc2"><span style="mso-spacerun: 'yes'; font-family: 'Times New Roman'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 宋体; font-variant: small-caps; font-size: 10.5000pt; mso-font-kerning: 1.0000pt;">&nbsp;</span></p>]]></description>
    <pubDate>Wed, 03 Jun 2026 09:41:44 +0800</pubDate>
    <dc:creator>钟智淮</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=5</guid>
</item>
<item>
    <title>1月13日-机关幼儿园（东平园）-广播功放问题</title>
    <link>https://edp.harmonylinktech.cn/?post=3</link>
    <description><![CDATA[<div class="euc-help">
<pre><a href="/content/uploadfile/202606/d1ff1780389225.docx" target="_blank" rel="noopener">1月13日-机关幼儿园（东平园）-广播功放问题.docx</a></pre>
</div>
<p class="MsoNormal"><span style="font-family: Calibri;">--</span><span style="font-family: 宋体;">设置</span><span style="font-family: Calibri;">NAS</span><span style="font-family: 宋体;">网盘</span></p>
<p class="MsoNormal"><img src="/content/uploadfile/202606/b6c31780388709.png" alt="图片1.png" width="503" height="283">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">账号：</span><span style="font-family: Calibri;">test</span></p>
<p class="MsoToc2"><span style="font-family: Times New Roman;">密码：</span><span style="font-family: Calibri;">123456</span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: Calibri;">--</span><span style="font-family: Times New Roman;">功放问题</span></p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoToc2"><span style="font-family: Times New Roman;">问题：</span><span style="font-family: Calibri;">1</span><span style="font-family: Times New Roman;">月</span><span style="font-family: Calibri;">10</span><span style="font-family: Times New Roman;">日消防演练，东平原全部断电，服务器也断开连接，导致早上</span><span style="font-family: Calibri;">7</span><span style="font-family: Times New Roman;">点</span><span style="font-family: Calibri;">30</span><span style="font-family: Times New Roman;">分的定时任务无法下达，显示服务器未注册问题</span></p>
<p><a href="/content/uploadfile/202606/71421780388772.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/71421780388772.png" alt="图片2.png" width="597" height="257"></a></p>
<p><a href="/content/uploadfile/202606/05261780388772.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/05261780388772.png" alt="图片3.png" width="603" height="452"></a></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoToc2">&nbsp;</p>
<p class="MsoNormal"><span style="font-family: 宋体;">解决：</span><span style="font-family: Calibri;">ITC</span><span style="font-family: 宋体;">更新服务网站版本和服务器配置</span></p>
<p class="MsoToc2">&nbsp;&nbsp;</p>
<p><a href="/content/uploadfile/202606/1ed01780388798.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/1ed01780388798.png" alt="图片4.png" width="616" height="249"></a></p>
<p><a href="/content/uploadfile/202606/95101780388799.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/95101780388799.png" alt="图片5.png" width="624" height="242"></a></p>
<p><a href="/content/uploadfile/202606/560d1780388799.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/560d1780388799.png" alt="图片6.png" width="622" height="350"></a></p>
<p><a href="/content/uploadfile/202606/1e1b1780388799.png" target="_blank" rel="noopener"><img src="/content/uploadfile/202606/1e1b1780388799.png" alt="图片7.png" width="616" height="426"></a></p>
<p class="MsoNormal"><span style="font-family: Times New Roman;">账号：</span><span style="font-family: Calibri;">admin</span></p>
<p class="MsoToc2"><span style="font-family: Times New Roman;">密码：</span><span style="font-family: Calibri;">blgb</span><span style="font-family: Calibri;">2.126</span></p>
<pre>&nbsp;</pre>]]></description>
    <pubDate>Tue, 02 Jun 2026 16:24:53 +0800</pubDate>
    <dc:creator>管理员</dc:creator>
    <guid>https://edp.harmonylinktech.cn/?post=3</guid>
</item>
</channel>
</rss>