楼主试下这个: Function GetNextIPName(IP1str As String, ByVal AutoIncCnt As Long) As String Dim aIPdn(3) As Long, aIPds() As String Dim i&, V&, C&, sR$ aIPds = Split(IP1str, ".") For i = 0 To 3: aIPdn(i) = aIPds(i): Next C = 0 For i = 3 To 0 Step -1 V = C + aIPdn(i) + (AutoIncCnt And 255) aIPdn(i) = V And 255 AutoIncCnt = AutoIncCnt \ 256 C = V \ 256 If ((C Or AutoIncCnt) = 0) Then Exit For Next sR = aIPdn(0) For i = 1 To 3: sR = sR & "." & aIPdn(i): Next GetNextIPName = sR End Function
简化一下: Function GetNextIPName(IP1str As String, ByVal AutoIncCnt As Long) As String Dim aIPdn(3) As Long, aIPds() As String Dim i&, V&, C&, sR$ aIPds = Split(IP1str, ".") For i = 0 To 3: aIPdn(i) = aIPds(i): Next C = 0: sR = "" For i = 3 To 0 Step -1 V = C + aIPdn(i) + (AutoIncCnt And 255) AutoIncCnt = AutoIncCnt \ 256 sR = "." & (V And 255) & sR C = V \ 256 Next GetNextIPName = Mid$(sR, 2) End Function
CString GetNextIPName(CString IP1str,int AutoIncCnt)
{
CString retstr=IP1str;
BYTE ip1=192,ip2=168,ip3=1,ip4=1;
ParseIP(IP1str,ip1,ip2,ip3,ip4);
DWORD nextip=0;
nextip=nextip*256+ip1;
nextip=nextip*256+ip2;
nextip=nextip*256+ip3;
nextip=nextip*256+ip4;
nextip=nextip+AutoIncCnt;
retstr.Format("%d.%d.%d.%d",BYTE(nextip/256/256/256),BYTE(nextip/256/256%256),BYTE(nextip/256%256),BYTE(nextip%256));
return retstr;
}
Function GetNextIPName(IP1str As String, ByVal AutoIncCnt As Long) As String
Dim aIPdn(3) As Long, aIPds() As String
Dim i&, V&, C&, sR$
aIPds = Split(IP1str, ".")
For i = 0 To 3: aIPdn(i) = aIPds(i): Next
C = 0
For i = 3 To 0 Step -1
V = C + aIPdn(i) + (AutoIncCnt And 255)
aIPdn(i) = V And 255
AutoIncCnt = AutoIncCnt \ 256
C = V \ 256
If ((C Or AutoIncCnt) = 0) Then Exit For
Next
sR = aIPdn(0)
For i = 1 To 3: sR = sR & "." & aIPdn(i): Next
GetNextIPName = sR
End Function
Function GetNextIPName(IP1str As String, ByVal AutoIncCnt As Long) As String
Dim aIPdn(3) As Long, aIPds() As String
Dim i&, V&, C&, sR$
aIPds = Split(IP1str, ".")
For i = 0 To 3: aIPdn(i) = aIPds(i): Next
C = 0: sR = ""
For i = 3 To 0 Step -1
V = C + aIPdn(i) + (AutoIncCnt And 255)
AutoIncCnt = AutoIncCnt \ 256
sR = "." & (V And 255) & sR
C = V \ 256
Next
GetNextIPName = Mid$(sR, 2)
End Function