通过vue 实现 ping IP 地址

import { defineComponent, ref } from 'vue'

export default defineComponent({

  setup() {

     let ipInput=ref("192.168.1.123")

     let pings = ( ) => { 

       ping(ipInput.value)

    }

    const ping = (ip:string) => {

       var img = new Image()

      var start = new Date().getTime()

      let isFlag = ref(false)

      let isCloseWifi =  ref(true) 

      let isHasFinish =  ref(false)

      img.onload = function() {

        if (!isHasFinish.value) {

          isFlag.value = true

          isHasFinish.value = true

          alert('ping' + ip+'通过------------------')

        }

      }

      img.onerror = function() {

        if (!isHasFinish.value) {

          if (!isCloseWifi.value) {

            isFlag.value = true

          alert('ping' + ip+'通过------------------')

          } 

          isHasFinish.value = true

        }

      }

      setTimeout(function() {

        isCloseWifi.value = false

        console.log('network is working, start ping...')

      }, 2)

      img.src = 'http://' + ip + '/' + start

      var timer = setTimeout(function() {

        if (!isFlag.value) {

          isHasFinish.value = true

          isFlag.value = false

          console.log('Ping ' + ip + ' fail. ')

          alert('ping' + ip+'失败!!!!!!!!!!!!!!!!')

        }

      }, 3000)

    }

    return {ipInput,pings}

  },

})

你可能感兴趣的:(前端vue实现ping,IP,vue3,ping,ip,前端)