By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,960 Members | 987 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,960 IT Pros & Developers. It's quick & easy.

Filecopy With Ip Address

P: 1
Hi all, Im not speak english so well, but i'll try to do it better. I have a problem with the filecopy function when i use the IP instead of a computer name. For example

This sentence works ok
FileCopy "\\gdl1mfg994\qualcomm\k2.pdf", "\\gdl1me090\dibujos\bety.pdf"

But this doesn't work
FileCopy "\\168.192.1.16\qualcomm\k2.pdf", "\\168.190.4.14\dibujos\bety.pdf"

It display this error: "path not found"

Can anybody help me???
Feb 1 '08 #1
Share this Question
Share on Google+
3 Replies


P: 68
Hi all, Im not speak english so well, but i'll try to do it better. I have a problem with the filecopy function when i use the IP instead of a computer name. For example

This sentence works ok
FileCopy "\\gdl1mfg994\qualcomm\k2.pdf", "\\gdl1me090\dibujos\bety.pdf"

But this doesn't work
FileCopy "\\168.192.1.16\qualcomm\k2.pdf", "\\168.190.4.14\dibujos\bety.pdf"

It display this error: "path not found"

Can anybody help me???
Hi,
Do u try by the Internet Transfer Control?
Feb 2 '08 #2

kZero
P: 23
Hello,
you have first to convert the ip to hostname to copy
you can use this code

Expand|Select|Wrap|Line Numbers
  1. '**************************************
  2. 'Windows API/Global Declarations for :IP
  3. '     Resolver - IP Address Convert to Hostnam
  4. '     e
  5. '**************************************
  6. 'PUT THIS IS A MODULE
  7. Option Explicit
  8. '||================================||
  9. '|| Remember to use:||
  10. '|| WSACleanup in Form_Unload()||
  11. '|| IP_Initialize in Form_Load() ||
  12. '||================================||
  13. Const WSADescription_Len = 256
  14. Const WSASYS_Status_Len = 128
  15.  
  16.  
  17. Private Type HOSTENT
  18.     hName As Long
  19.     hAliases As Long
  20.     hAddrType As Integer
  21.     hLength As Integer
  22.     hAddrList As Long
  23.     End Type
  24.  
  25.  
  26. Private Type WSADATA
  27.     wversion As Integer
  28.     wHighVersion As Integer
  29.     szDescription(0 To WSADescription_Len) As Byte
  30.     szSystemStatus(0 To WSASYS_Status_Len) As Byte
  31.     iMaxSockets As Integer
  32.     iMaxUdpDg As Integer
  33.     lpszVendorInfo As Long
  34.     End Type
  35.  
  36.  
  37. Declare Function WSACleanup Lib "wsock32" () As Long
  38.  
  39.  
  40. Private Declare Function WSAStartup Lib "wsock32" _
  41.     (ByVal VersionReq As Long, WSADataReturn As WSADATA) As Long
  42.  
  43.  
  44. Private Declare Function WSAGetLastError Lib "wsock32" () As Long
  45.  
  46.  
  47. Private Declare Function gethostbyaddr Lib "wsock32" (addr As Long, addrLen As Long, _
  48.     addrType As Long) As Long
  49.  
  50.  
  51. Private Declare Function gethostbyname Lib "wsock32" (ByVal hostname As String) As Long
  52.  
  53.  
  54. Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, _
  55.     ByVal cbCopy As Long)
  56.     'checks if string is valid IP address
  57.  
  58.  
  59. Private Function IsIP(ByVal strIP As String) As Boolean
  60.     On Error Resume Next
  61.     Dim t As String: Dim s As String: Dim i As Integer
  62.     s = strIP
  63.  
  64.  
  65.     While InStr(s, ".") <> 0
  66.         t = Left(s, InStr(s, ".") - 1)
  67.         If IsNumeric(t) And Val(t) >= 0 And Val(t) <= 255 Then s = Mid(s, InStr(s, ".") + 1) _
  68.     Else Exit Function
  69.         i = i + 1
  70.     Wend
  71.     t = s
  72.     If IsNumeric(t) And InStr(t, ".") = 0 And Len(t) = Len(Trim(Str(Val(t)))) And _
  73.     Val(t) >= 0 And Val(t) <= 255 And strIP <> "255.255.255.255" And i = 3 Then IsIP = True
  74.  
  75.  
  76.     If Err.Number > 0 Then
  77.         MsgBox Err.Description, , Err.Number
  78.         Err.Clear
  79.     End If
  80. End Function
  81. 'converts IP address from string to sin_
  82. '     addr
  83.  
  84.  
  85. Private Function MakeIP(strIP As String) As Long
  86.     On Error Resume Next
  87.     Dim lIP As Long
  88.     lIP = Left(strIP, InStr(strIP, ".") - 1)
  89.     strIP = Mid(strIP, InStr(strIP, ".") + 1)
  90.     lIP = lIP + Left(strIP, InStr(strIP, ".") - 1) * 256
  91.     strIP = Mid(strIP, InStr(strIP, ".") + 1)
  92.     lIP = lIP + Left(strIP, InStr(strIP, ".") - 1) * 256 * 256
  93.     strIP = Mid(strIP, InStr(strIP, ".") + 1)
  94.  
  95.  
  96.     If strIP < 128 Then
  97.         lIP = lIP + strIP * 256 * 256 * 256
  98.     Else
  99.         lIP = lIP + (strIP - 256) * 256 * 256 * 256
  100.     End If
  101.     MakeIP = lIP
  102.  
  103.  
  104.     If Err.Number > 0 Then
  105.         MsgBox Err.Description, , Err.Number
  106.         Err.Clear
  107.     End If
  108. End Function
  109. 'resolves IP address to host name
  110.  
  111.  
  112. Function NameByAddr(strAddr As String) As String
  113.     On Error Resume Next
  114.     Dim nRet As Long
  115.     Dim lIP As Long
  116.     Dim strHost As String * 255: Dim strTemp As String
  117.     Dim hst As HOSTENT
  118.  
  119.  
  120.  
  121.     If IsIP(strAddr) Then
  122.         lIP = MakeIP(strAddr)
  123.         nRet = gethostbyaddr(lIP, 4, 2)
  124.  
  125.  
  126.         If nRet <> 0 Then
  127.             RtlMoveMemory hst, nRet, Len(hst)
  128.             RtlMoveMemory ByVal strHost, hst.hName, 255
  129.             strTemp = strHost
  130.             If InStr(strTemp, Chr(10)) <> 0 Then strTemp = Left(strTemp, InStr(strTemp, Chr(0)) - 1)
  131.             strTemp = Trim(strTemp)
  132.             NameByAddr = strTemp
  133.         Else
  134.             MsgBox "Host name Not found", , "9003"
  135.             Exit Function
  136.         End If
  137.     Else
  138.         MsgBox "Invalid IP address", , "9002"
  139.         Exit Function
  140.     End If
  141.  
  142.  
  143.     If Err.Number > 0 Then
  144.         MsgBox Err.Description, , Err.Number
  145.         Err.Clear
  146.     End If
  147. End Function
  148. 'resolves host name to IP address
  149.  
  150.  
  151. Function AddrByName(ByVal strHost As String)
  152.     On Error Resume Next
  153.     Dim hostent_addr As Long
  154.     Dim hst As HOSTENT
  155.     Dim hostip_addr As Long
  156.     Dim temp_ip_address() As Byte
  157.     Dim i As Integer
  158.     Dim ip_address As String
  159.  
  160.  
  161.     If IsIP(strHost) Then
  162.         AddrByName = strHost
  163.         Exit Function
  164.     End If
  165.     hostent_addr = gethostbyname(strHost)
  166.  
  167.  
  168.     If hostent_addr = 0 Then
  169.         MsgBox "Can't resolve hst", , "9001"
  170.         Exit Function
  171.     End If
  172.     RtlMoveMemory hst, hostent_addr, LenB(hst)
  173.     RtlMoveMemory hostip_addr, hst.hAddrList, 4
  174.     ReDim temp_ip_address(1 To hst.hLength)
  175.     RtlMoveMemory temp_ip_address(1), hostip_addr, hst.hLength
  176.  
  177.  
  178.     For i = 1 To hst.hLength
  179.         ip_address = ip_address & temp_ip_address(i) & "."
  180.     Next
  181.     ip_address = Mid(ip_address, 1, Len(ip_address) - 1)
  182.     AddrByName = ip_address
  183.  
  184.  
  185.     If Err.Number > 0 Then
  186.         MsgBox Err.Description, , Err.Number
  187.         Err.Clear
  188.     End If
  189. End Function
  190.  
  191.  
  192. Sub IP_Initialize()
  193.     Dim udtWSAData As WSADATA
  194.  
  195.  
  196.     If WSAStartup(257, udtWSAData) Then
  197.         MsgBox Err.Description, , Err.LastDllError
  198.     End If
  199. End Sub
  200. '||================================||
  201. '|| Remember to use:||
  202. '|| WSACleanup in Form_Unload()||
  203. '|| IP_Initialize in Form_Load() ||
  204. '||================================||
  205.  
  206.  
Expand|Select|Wrap|Line Numbers
  1. 'How do you call these Functions?
  2. Option Explicit
  3.  
  4.  
  5. Private Sub Command1_Click()
  6.     Text1.Text = NameByAddr(Text2)
  7. End Sub
  8.  
  9.  
  10. Private Sub Command2_Click()
  11.     Text2.Text = AddrByName("www.yahoo.com")
  12. End Sub
  13.  
  14.  
  15. Private Sub Form_Load()
  16.     IP_Initialize
  17. End Sub
  18.  
  19.  
  20. Private Sub Form_Unload(Cancel As Integer)
  21.     WSACleanup
  22. End Sub
  23.  
Feb 2 '08 #3

P: 68
Hello,
you have first to convert the ip to hostname to copy
you can use this code

Expand|Select|Wrap|Line Numbers
  1. '**************************************
  2. 'Windows API/Global Declarations for :IP
  3. '     Resolver - IP Address Convert to Hostnam
  4. '     e
  5. '**************************************
  6. 'PUT THIS IS A MODULE
  7. Option Explicit
  8. '||================================||
  9. '|| Remember to use:||
  10. '|| WSACleanup in Form_Unload()||
  11. '|| IP_Initialize in Form_Load() ||
  12. '||================================||
  13. Const WSADescription_Len = 256
  14. Const WSASYS_Status_Len = 128
  15.  
  16.  
  17. Private Type HOSTENT
  18.     hName As Long
  19.     hAliases As Long
  20.     hAddrType As Integer
  21.     hLength As Integer
  22.     hAddrList As Long
  23.     End Type
  24.  
  25.  
  26. Private Type WSADATA
  27.     wversion As Integer
  28.     wHighVersion As Integer
  29.     szDescription(0 To WSADescription_Len) As Byte
  30.     szSystemStatus(0 To WSASYS_Status_Len) As Byte
  31.     iMaxSockets As Integer
  32.     iMaxUdpDg As Integer
  33.     lpszVendorInfo As Long
  34.     End Type
  35.  
  36.  
  37. Declare Function WSACleanup Lib "wsock32" () As Long
  38.  
  39.  
  40. Private Declare Function WSAStartup Lib "wsock32" _
  41.     (ByVal VersionReq As Long, WSADataReturn As WSADATA) As Long
  42.  
  43.  
  44. Private Declare Function WSAGetLastError Lib "wsock32" () As Long
  45.  
  46.  
  47. Private Declare Function gethostbyaddr Lib "wsock32" (addr As Long, addrLen As Long, _
  48.     addrType As Long) As Long
  49.  
  50.  
  51. Private Declare Function gethostbyname Lib "wsock32" (ByVal hostname As String) As Long
  52.  
  53.  
  54. Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, _
  55.     ByVal cbCopy As Long)
  56.     'checks if string is valid IP address
  57.  
  58.  
  59. Private Function IsIP(ByVal strIP As String) As Boolean
  60.     On Error Resume Next
  61.     Dim t As String: Dim s As String: Dim i As Integer
  62.     s = strIP
  63.  
  64.  
  65.     While InStr(s, ".") <> 0
  66.         t = Left(s, InStr(s, ".") - 1)
  67.         If IsNumeric(t) And Val(t) >= 0 And Val(t) <= 255 Then s = Mid(s, InStr(s, ".") + 1) _
  68.     Else Exit Function
  69.         i = i + 1
  70.     Wend
  71.     t = s
  72.     If IsNumeric(t) And InStr(t, ".") = 0 And Len(t) = Len(Trim(Str(Val(t)))) And _
  73.     Val(t) >= 0 And Val(t) <= 255 And strIP <> "255.255.255.255" And i = 3 Then IsIP = True
  74.  
  75.  
  76.     If Err.Number > 0 Then
  77.         MsgBox Err.Description, , Err.Number
  78.         Err.Clear
  79.     End If
  80. End Function
  81. 'converts IP address from string to sin_
  82. '     addr
  83.  
  84.  
  85. Private Function MakeIP(strIP As String) As Long
  86.     On Error Resume Next
  87.     Dim lIP As Long
  88.     lIP = Left(strIP, InStr(strIP, ".") - 1)
  89.     strIP = Mid(strIP, InStr(strIP, ".") + 1)
  90.     lIP = lIP + Left(strIP, InStr(strIP, ".") - 1) * 256
  91.     strIP = Mid(strIP, InStr(strIP, ".") + 1)
  92.     lIP = lIP + Left(strIP, InStr(strIP, ".") - 1) * 256 * 256
  93.     strIP = Mid(strIP, InStr(strIP, ".") + 1)
  94.  
  95.  
  96.     If strIP < 128 Then
  97.         lIP = lIP + strIP * 256 * 256 * 256
  98.     Else
  99.         lIP = lIP + (strIP - 256) * 256 * 256 * 256
  100.     End If
  101.     MakeIP = lIP
  102.  
  103.  
  104.     If Err.Number > 0 Then
  105.         MsgBox Err.Description, , Err.Number
  106.         Err.Clear
  107.     End If
  108. End Function
  109. 'resolves IP address to host name
  110.  
  111.  
  112. Function NameByAddr(strAddr As String) As String
  113.     On Error Resume Next
  114.     Dim nRet As Long
  115.     Dim lIP As Long
  116.     Dim strHost As String * 255: Dim strTemp As String
  117.     Dim hst As HOSTENT
  118.  
  119.  
  120.  
  121.     If IsIP(strAddr) Then
  122.         lIP = MakeIP(strAddr)
  123.         nRet = gethostbyaddr(lIP, 4, 2)
  124.  
  125.  
  126.         If nRet <> 0 Then
  127.             RtlMoveMemory hst, nRet, Len(hst)
  128.             RtlMoveMemory ByVal strHost, hst.hName, 255
  129.             strTemp = strHost
  130.             If InStr(strTemp, Chr(10)) <> 0 Then strTemp = Left(strTemp, InStr(strTemp, Chr(0)) - 1)
  131.             strTemp = Trim(strTemp)
  132.             NameByAddr = strTemp
  133.         Else
  134.             MsgBox "Host name Not found", , "9003"
  135.             Exit Function
  136.         End If
  137.     Else
  138.         MsgBox "Invalid IP address", , "9002"
  139.         Exit Function
  140.     End If
  141.  
  142.  
  143.     If Err.Number > 0 Then
  144.         MsgBox Err.Description, , Err.Number
  145.         Err.Clear
  146.     End If
  147. End Function
  148. 'resolves host name to IP address
  149.  
  150.  
  151. Function AddrByName(ByVal strHost As String)
  152.     On Error Resume Next
  153.     Dim hostent_addr As Long
  154.     Dim hst As HOSTENT
  155.     Dim hostip_addr As Long
  156.     Dim temp_ip_address() As Byte
  157.     Dim i As Integer
  158.     Dim ip_address As String
  159.  
  160.  
  161.     If IsIP(strHost) Then
  162.         AddrByName = strHost
  163.         Exit Function
  164.     End If
  165.     hostent_addr = gethostbyname(strHost)
  166.  
  167.  
  168.     If hostent_addr = 0 Then
  169.         MsgBox "Can't resolve hst", , "9001"
  170.         Exit Function
  171.     End If
  172.     RtlMoveMemory hst, hostent_addr, LenB(hst)
  173.     RtlMoveMemory hostip_addr, hst.hAddrList, 4
  174.     ReDim temp_ip_address(1 To hst.hLength)
  175.     RtlMoveMemory temp_ip_address(1), hostip_addr, hst.hLength
  176.  
  177.  
  178.     For i = 1 To hst.hLength
  179.         ip_address = ip_address & temp_ip_address(i) & "."
  180.     Next
  181.     ip_address = Mid(ip_address, 1, Len(ip_address) - 1)
  182.     AddrByName = ip_address
  183.  
  184.  
  185.     If Err.Number > 0 Then
  186.         MsgBox Err.Description, , Err.Number
  187.         Err.Clear
  188.     End If
  189. End Function
  190.  
  191.  
  192. Sub IP_Initialize()
  193.     Dim udtWSAData As WSADATA
  194.  
  195.  
  196.     If WSAStartup(257, udtWSAData) Then
  197.         MsgBox Err.Description, , Err.LastDllError
  198.     End If
  199. End Sub
  200. '||================================||
  201. '|| Remember to use:||
  202. '|| WSACleanup in Form_Unload()||
  203. '|| IP_Initialize in Form_Load() ||
  204. '||================================||
  205.  
  206.  
Expand|Select|Wrap|Line Numbers
  1. 'How do you call these Functions?
  2. Option Explicit
  3.  
  4.  
  5. Private Sub Command1_Click()
  6.     Text1.Text = NameByAddr(Text2)
  7. End Sub
  8.  
  9.  
  10. Private Sub Command2_Click()
  11.     Text2.Text = AddrByName("www.yahoo.com")
  12. End Sub
  13.  
  14.  
  15. Private Sub Form_Load()
  16.     IP_Initialize
  17. End Sub
  18.  
  19.  
  20. Private Sub Form_Unload(Cancel As Integer)
  21.     WSACleanup
  22. End Sub
  23.  
If it works, its a great archive for all of us. Thanks.
Feb 2 '08 #4

Post your reply

Sign in to post your reply or Sign up for a free account.