- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
bool kiemtraso(std::string &a,int i)
{
char N[4];
/* N[0]=a[i+0];
N[1]=a[i+1];
N[2]=a[i+2];*/
for(int n=0;n<3;n++)
{
N[n]=a[i+n];
}
if(atoi(N)>255) return 0;
return 1;
}
bool isIPv4Address(std::string inputString)
{
int n=inputString.length();
//3 dau cham=====================================гугл перевел: "3 часа ночи"
int dem=0;
for(int i=0;i<n;i++)
{
if(inputString[i]==46) dem++;
}
if(dem!=3) return 0;
//co hon mot ki tu==============================
if(inputString[0]==46||inputString[n-1]==46) return 0; //ki tu dau va cuoi khac dau cham
for(int i=1;i<inputString.length()-1;i++)
{
if(inputString[i]==46 && inputString[i+1] == 46) return 0;
}
//khong co chu cai=========================================
for(int i=0 ; i<n ; i++)
{
if (inputString[i]==47||inputString[i]<46||inputString[i]>57) return 0;
}
//2 so o giua nho hon 255===========================================
int sokitu;
for(int i=0; i<n-1 ; i++)
{
if(inputString[i]==46)
{
for(int j=i+1 ; j < n ; j++)
{
if(inputString[j]==46)
{
sokitu = j-i-1;
if(sokitu==3&&kiemtraso(inputString,i+1)==0) return 0;
if(sokitu>3) return 0;
break;
}
}
i++;
continue;
}
}
//so dau nho hon 255 =====================================
int kitudau;
int m=0;
for(int i=0;i<n;i++)
{
if(inputString[i]==46)
{
if (i==3 && kiemtraso(inputString,m)==0) return 0;
if (i>3) return 0;
break;
}
}
//so cuoi nho hon 255=======================================
for(int i=inputString.length()-1;i>0;i--)
{
if(inputString[i]==46)
{
if(inputString.length()-i-1==3 && kiemtraso(inputString,i+1)==0) return 0;
if (inputString.length()-i-1 > 3) return 0;
break;
}
}
return 1;
}
Проверяет, является ли введенная строка IP адресом.
Не мое
решение одного, судя по всему, вьетнамца.
Я пока не очень силен в алгоритмах, может это типа нормально, подскажите.
noserdan 02.04.2018 14:25 # −1
какие ночи, гугл, "точки" же) не догнал сразу
PaulDenisevich 02.04.2018 14:41 # 0
noserdan 02.04.2018 15:05 # −1
PaulDenisevich 02.04.2018 16:13 # 0
Steve_Brown 02.04.2018 14:31 # 0
bormand 02.04.2018 18:55 # 0
Ну, за исключением UB'а в kiemtraso оно даже должно работать на привычной всем форме IPv4 адресов (извращения в духе 0x7F000001 или 0177.1 мало кому интересны, хоть и допустимы)…
Psionic 03.04.2018 11:53 # 0
bormand 03.04.2018 17:50 # +1