shell "arp -s ip mac" ,0
其中ip mac 是引用的 vb中的
该如何呢
shell "arp -s " & ip & " " & mac & " " ,0
我试过不行的
谁能解答下 ,谢谢咯
Option   Explicit   
    
  Private   Const   MAX_ADAPTER_NAME_LENGTH                   As   Long   =   256   
  Private   Const   MAX_ADAPTER_DESCRIPTION_LENGTH     As   Long   =   128   
  Private   Const   MAX_ADAPTER_ADDRESS_LENGTH             As   Long   =   8   
  Private   Const   ERROR_SUCCESS     As   Long   =   0   
    
  Private   Type   IP_ADDRESS_STRING   
          IpAddr(0   To   15)     As   Byte   
  End   Type   
    
  Private   Type   IP_MASK_STRING   
          IpMask(0   To   15)     As   Byte   
  End   Type   
    
  Private   Type   IP_ADDR_STRING   
          dwNext           As   Long   
          IpAddress     As   IP_ADDRESS_STRING   
          IpMask           As   IP_MASK_STRING   
          dwContext     As   Long   
  End   Type   
    
  Private   Type   IP_ADAPTER_INFO   
      dwNext                                 As   Long   
      ComboIndex                         As   Long     '保留   
      sAdapterName(0   To   (MAX_ADAPTER_NAME_LENGTH   +   3))                 As   Byte   
      sDescription(0   To   (MAX_ADAPTER_DESCRIPTION_LENGTH   +   3))   As   Byte   
      dwAddressLength               As   Long   
      sIPAddress(0   To   (MAX_ADAPTER_ADDRESS_LENGTH   -   1))               As   Byte   
      dwIndex                               As   Long   
      uType                                   As   Long   
      uDhcpEnabled                     As   Long   
      CurrentIpAddress             As   Long   
      IpAddressList                   As   IP_ADDR_STRING   
      GatewayList                       As   IP_ADDR_STRING   
      DhcpServer                         As   IP_ADDR_STRING   
      bHaveWins                           As   Long   
      PrimaryWinsServer           As   IP_ADDR_STRING   
      SecondaryWinsServer       As   IP_ADDR_STRING   
      LeaseObtained                   As   Long   
      LeaseExpires                     As   Long   
  End   Type   
    
    
  Private   Const   NCBASTAT   =   &H33   
  Private   Const   NCBNAMSZ   =   16   
  Private   Const   HEAP_ZERO_MEMORY   =   &H8   
  Private   Const   HEAP_GENERATE_EXCEPTIONS   =   &H4   
  Private   Const   NCBRESET   =   &H32   
    
  Private   Type   NCB   
      ncb_command   As   Byte   
      ncb_retcode   As   Byte   
      ncb_lsn   As   Byte   
      ncb_num   As   Byte   
      ncb_buffer   As   Long   
      ncb_length   As   Integer   
      ncb_callname   As   String   *   NCBNAMSZ   
      ncb_name   As   String   *   NCBNAMSZ   
      ncb_rto   As   Byte   
      ncb_sto   As   Byte   
      ncb_post   As   Long   
      ncb_lana_num   As   Byte   
      ncb_cmd_cplt   As   Byte   
      ncb_reserve(9)   As   Byte   '   Reserved,   must   be   0   
      ncb_event   As   Long   
  End   Type   
    
  Private   Type   ADAPTER_STATUS   
      adapter_address(5)   As   Byte   
      rev_major   As   Byte   
      reserved0   As   Byte   
      adapter_type   As   Byte   
      rev_minor   As   Byte   
      duration   As   Integer   
      frmr_recv   As   Integer   
      frmr_xmit   As   Integer   
      iframe_recv_err   As   Integer   
      xmit_aborts   As   Integer   
      xmit_success   As   Long   
      recv_success   As   Long   
      iframe_xmit_err   As   Integer   
      recv_buff_unavail   As   Integer   
      t1_timeouts   As   Integer   
      ti_timeouts   As   Integer   
      Reserved1   As   Long   
      free_ncbs   As   Integer   
      max_cfg_ncbs   As   Integer   
      max_ncbs   As   Integer   
      xmit_buf_unavail   As   Integer   
      max_dgram_size   As   Integer   
      pending_sess   As   Integer   
      max_cfg_sess   As   Integer   
      max_sess   As   Integer   
      max_sess_pkt_size   As   Integer   
      name_count   As   Integer   
  End   Type   
    
  Private   Type   NAME_BUFFER   
      name   As   String   *   NCBNAMSZ   
      name_num   As   Integer   
      name_flags   As   Integer   
  End   Type   
    
  Private   Type   ASTAT   
      adapt   As   ADAPTER_STATUS   
      NameBuff(30)   As   NAME_BUFFER   
  End   Type   
    
  Private   Declare   Function   GetAdaptersInfo   Lib   "iphlpapi.dll"   (pTcpTable   As   Any,   pdwSize   As   Long)   As   Long   
  Private   Declare   Sub   CopyMemory   Lib   "kernel32"   Alias   "RtlMoveMemory"   (dst   As   Any,   src   As   Any,   ByVal   bcount   As   Long)   
  Private   Declare   Function   Netbios   Lib   "netapi32.dll"   (pncb   As   NCB)   As   Byte   
  Private   Declare   Function   GetProcessHeap   Lib   "kernel32"   ()   As   Long   
  Private   Declare   Function   HeapAlloc   Lib   "kernel32"   (ByVal   hHeap   As   Long,   ByVal   dwFlags   As   Long,   ByVal   dwBytes   As   Long)   As   Long   
  Private   Declare   Function   HeapFree   Lib   "kernel32"   (ByVal   hHeap   As   Long,   ByVal   dwFlags   As   Long,   lpMem   As   Any)   As   Long   
    
  Private   Function   EthernetAddress(LanaNumber   As   Long)   _   
  As   String   
    
      Dim   udtNCB               As   NCB   
      Dim   bytResponse   As   Byte   
      Dim   udtASTAT           As   ASTAT   
      Dim   udtTempASTAT   As   ASTAT   
      Dim   lngASTAT           As   Long   
      Dim   strOut               As   String   
      Dim   x                         As   Integer   
    
      udtNCB.ncb_command   =   NCBRESET   
      bytResponse   =   Netbios(udtNCB)   
      udtNCB.ncb_command   =   NCBASTAT   
      udtNCB.ncb_lana_num   =   LanaNumber   
      udtNCB.ncb_callname   =   "*   "   
      udtNCB.ncb_length   =   Len(udtASTAT)   
      lngASTAT   =   HeapAlloc(GetProcessHeap(),   _   
  HEAP_GENERATE_EXCEPTIONS   Or   HEAP_ZERO_MEMORY,   udtNCB.ncb_length)   
    
      strOut   =   ""   
      If   lngASTAT   Then   
          udtNCB.ncb_buffer   =   lngASTAT   
          bytResponse   =   Netbios(udtNCB)   
          CopyMemory   udtASTAT,   udtNCB.ncb_buffer,   Len(udtASTAT)   
            With   udtASTAT.adapt   
              For   x   =   0   To   5   
                  strOut   =   strOut   &   Right$("00"   &   Hex$(.adapter_address(x)),   2)   
              Next   x   
          End   With   
          HeapFree   GetProcessHeap(),   0,   lngASTAT   
      End   If   
      EthernetAddress   =   strOut   
  End   Function   
    
    Function   LocalIPAddress()   As   String   
        Dim   cbRequired     As   Long   
        Dim   buff()             As   Byte   
        Dim   Adapter           As   IP_ADAPTER_INFO   
        Dim   AdapterStr     As   IP_ADDR_STRING   
        Dim   ptr1                 As   Long   
        Dim   sIPAddr           As   String   
        Dim   found               As   Boolean   
        Call   GetAdaptersInfo(ByVal   0&,   cbRequired)   
        If   cbRequired   >   0   Then   
              ReDim   buff(0   To   cbRequired   -   1)   As   Byte   
              If   GetAdaptersInfo(buff(0),   cbRequired)   =   ERROR_SUCCESS   Then   
                  '获取存放在buff()中的数据的指针   
                    ptr1   =   VarPtr(buff(0))   
                    Do   While   (ptr1   <>   0)   
                        '将第一个网卡的数据转换到IP_ADAPTER_INFO结构中   
                          CopyMemory   Adapter,   ByVal   ptr1,   LenB(Adapter)   
                          With   Adapter   
                              'IpAddress.IpAddr成员给出了DHCP的IP地址   
                                sIPAddr   =   TrimNull(StrConv(.IpAddressList.IpAddress.IpAddr,   vbUnicode))   
                                If   Len(sIPAddr)   >   0   Then   
                                      found   =   True   
                                      Exit   Do   
                                End   If   
                                ptr1   =   .dwNext   
                          End   With     'With   Adapter   
                  '不再有网卡时,ptr1的值为0   
                    Loop     'Do   While   (ptr1   <>   0)   
              End   If     'If   GetAdaptersInfo   
        End   If     'If   cbRequired   >   0   
      '返回结果字符串   
        LocalIPAddress   =   sIPAddr   
  End   Function   
    
    Function   TrimNull(item   As   String)   
          Dim   pos   As   Integer   
          pos   =   InStr(item,   Chr$(0))   
          If   pos   Then   
                      TrimNull   =   Left$(item,   pos   -   1)   
          Else:   TrimNull   =   item   
          End   If   
  End   Function   
    
  Private   Sub   Form_Load()   
          MsgBox   "IP地址:"   &   LocalIPAddress   
          MsgBox   "MAC地址:"   &   EthernetAddress(0)   
  End   Sub   
以上就是源程序
我就是想用 arp 把 ip 和 mac 绑定
但是 用shell 命令 不知道 怎么引用 这2个变量 。。。。。。
SOS 。。。
