1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        為了上班摸魚,我用Python開發(fā)“BOSS來(lái)了”!

        共 5064字,需瀏覽 11分鐘

         ·

        2021-07-13 21:08

        文 | 閑歡

        來(lái)源:Python 技術(shù)「ID: pythonall」

        作為打工人來(lái)說(shuō),特別是996,、007的工作,除了干飯之外,最緊張刺激的莫過(guò)于上班的時(shí)候偶爾偷偷閑,去池塘里面摸摸魚。

        996摸魚

        一般人摸得哪些魚呢?聊天、微博、微信朋友圈、小游戲、小說(shuō)、股票基金等等。

        摸魚的最大阻礙是什么?當(dāng)然是包工頭(老板)了,他們恨不得打工人24小時(shí)不間斷地干活。

        老板抓摸魚

        但是人的精力是有限的,一天只能集中精力干那么幾個(gè)小時(shí),其他時(shí)間需要通過(guò)摸魚來(lái)調(diào)劑有限,所以我們只要摸魚不被包工頭發(fā)現(xiàn),那是相當(dāng)愉快的一件事情。

        為此,我用 Python 寫了一個(gè)小工具——BOSS 來(lái)了,來(lái)監(jiān)控老板,減少摸魚被發(fā)現(xiàn)的概率。

        思路

        我們知道,每臺(tái)電腦或者手機(jī)等終端都有一個(gè)固定的 Mac 地址,而我們公司辦公區(qū)域有幾個(gè) AP ,大家手機(jī)連接的都是距離自己最近的 AP ,所以理論上如果我知道老板手機(jī)的 Mac 地址,然后掃描局域網(wǎng)的所有 Mac 地址,如果出現(xiàn)老板手機(jī)的 Mac 地址,那么老板大概率是在我附近的,此時(shí)摸魚比較危險(xiǎn);如果沒有出現(xiàn)老板額 Mac 地址,那么老板可能離我比較遠(yuǎn),此時(shí)摸魚比較安全。

        基于上面思路,我要做的就是搞到老板手機(jī)的 Mac 地址,然后不斷輪詢局域網(wǎng)的所有 Mac 地址,一旦發(fā)現(xiàn)出現(xiàn)老板手機(jī)的 Mac 地址,我就老老實(shí)實(shí)干活,一旦老板的 Mac 地址消失了,就可以摸魚了。

        實(shí)現(xiàn)

        獲取老板手機(jī)Mac地址

        怎么搞到老板的手機(jī) Mac 地址?

        好多人聽到這個(gè)可能就感覺沒戲了!總不能把老板的手機(jī)偷過(guò)來(lái),然后去設(shè)置里面找吧。

        天無(wú)絕人之路,只要肯動(dòng)腦,辦法可不少!

        我的方法是這樣的。當(dāng)其他同事沒有走動(dòng)的時(shí)候,老板來(lái)的時(shí)候,保存一次局域網(wǎng)的 Mac 地址信息,當(dāng)老板走的時(shí)候再保存一次,然后比對(duì),找出老板手機(jī)的 Mac 地址。為了確保準(zhǔn)確性,可以多試幾次。

        機(jī)智如我

        獲取所有Mac地址

        第一步,使用 ipconfig/all 命令,可以找到當(dāng)前所處的網(wǎng)段:

        網(wǎng)段

        第二步,使用輪詢命令逐個(gè) ping 網(wǎng)段內(nèi)的 IP ,這一步是為了建立 ARP 表。命令如下:

        for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.1.%i

        其中,192.168.1.%i 是要查詢的網(wǎng)段。

        第三步,使用 arp 命令可以查詢所有的Mac地址,命令為:

        arp -a

        運(yùn)行之后,你會(huì)看到類似下面的結(jié)果:

        mac地址列表

        代碼實(shí)現(xiàn)

        思路已經(jīng)得到驗(yàn)證,準(zhǔn)備工作也做好了,接下來(lái)就是代碼實(shí)現(xiàn)了。

        首先,我們根據(jù)上面的思路,先寫一個(gè)獲取局域網(wǎng)所有的 Mac 地址的方法。


        def get_macs():
            # 運(yùn)行cmd控制窗口,輸入“arp -a”,并將內(nèi)容傳遞到res中
            res = os.popen("arp -a")
            # 讀取res數(shù)據(jù),轉(zhuǎn)換為可讀數(shù)據(jù)
            arps = res.read()
            print(arps)

            # 將獲得的counts中的數(shù)據(jù)根據(jù)“換行符”來(lái)進(jìn)行分割切片
            result = arps.split('\n')

            # 設(shè)一個(gè)空列表裝ip
            ips = []
            # 設(shè)一個(gè)空列表裝mac
            macs = []

            # 遍歷
            for i in range(1, len(result)):
                # 獲得列表中第idx個(gè)數(shù)據(jù)
                line = result[i]
                if ('Internet' in line) | ('' == line) | ('接口' in line):
                    continue
                # 根據(jù)“ ”進(jìn)行切片
                line_split = line.split(" ")
                index = 0
                for l in line_split:
                    if l != '':
                        index += 1
                        if index == 1:
                            ips.append(l)
                        elif index == 2:
                            macs.append(l)

            return ips, macs

        然后,寫一個(gè)定時(shí)輪詢。


        # 老板的Mac地址
        bossMac = "01-00-5e-0b-14-01"
        sleep_time = 5
        while 1 == 1:
            time.sleep(sleep_time)
            ips, macs = get_macs()
            is_come = 0
            for mac in macs:
                if mac == bossMac:
                    is_come = 2
                    # 如果boss來(lái)了,就隔5分鐘掃描一次
                    sleep_time = 300
                    # 提示報(bào)警
                    choice = g.msgbox(msg="有內(nèi)鬼,終止交易!", title="OMG")
                    break
            if is_come == 0:
                # 如果boss走了,就隔5秒鐘掃描一次
                sleep_time = 5
                g.msgbox(msg="一切正常!", title="OMG")

        我這里設(shè)定的是:如果老板出現(xiàn)了,就每隔 5 分鐘輪詢一次,因?yàn)槔习逶诘脑挘芯Ω苫?,不能太過(guò)頻繁地想著摸魚。如果老板走了,就每隔5秒鐘輪詢一次,摸魚的時(shí)候還是要頻繁預(yù)警比較好!

        運(yùn)行程序,當(dāng)老板來(lái)時(shí),預(yù)警彈窗是這樣子的:

        有內(nèi)鬼

        當(dāng)老板消失后,彈窗內(nèi)容是這樣的:

        老板走了

        總結(jié)

        當(dāng)然,如果老板沒有開 WiFi ,那么這個(gè)方法就失效了?;蛘呃习暹^(guò)來(lái)了,但是 手機(jī)反應(yīng)慢了,沒有切換到這邊的 AP ,那也會(huì)存在危險(xiǎn)。所以不要完全依賴這個(gè)小工具,摸魚的時(shí)候還是要偶爾觀察一下周圍環(huán)境。

        最后,還是得提醒一下大家:小摸怡情,大摸傷身!

        - EOF -

          推薦閱讀:


        我為大家整理了一份從入門到進(jìn)階的Python學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。關(guān)注公眾號(hào) 「python之禪」,回復(fù) ebook 獲??;還可以回復(fù)「進(jìn)群」,和10w+ pythonista 交流學(xué)習(xí)。

        瀏覽 50
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            77777亚洲午夜久久多人 sandrarusso精品艳妇 | 91色一区二区三区 | GOGO西西午夜人体大胆高清 | 成人免费网站黄 | 大香蕉久久伊人 | 日本老妇人乱xxy | 国产黄色三级毛片 | 波多野结衣潜藏淫欲 | 翘臀后进少妇大白嫩屁股漫画 | 免费成人A片视频 |