Avatar billede GoofyDK Nybegynder
24. november 2010 - 16:59 Der er 9 kommentarer

Anti spam af strings

Hej.

Nogen som har arbejdet med anti spam, i forhold til strings? Altså, hvis jeg har en string som hedder "datatest" og modtager data i den string.

Hvis der bliver skrevet mere end 5 linjer inden for 10 sek, i "datatest". Så skal programmet skrive tilbage med f.eks. Console.WriteLine("Stop spam");

Det samme er hvis man skriver for mange gentagne ting. F.eks. hahahahahahahahahahahahaha. eller iiiiiiiiiiiiiiiiiiiiiiiiiiiih. og hvis 80% eller mere af teskten er med stort, så skriver den: Console.WriteLine("Hop lige ned fra caps"); også fra "datatest"

Er der nogen som kan hjælpe mig igang med dette?
Avatar billede janus_007 Nybegynder
24. november 2010 - 20:36 #1
Du skal nok arbejde med noget ordlyd... soundex agtigt noget.. http://en.wikipedia.org/wiki/Soundex

Læs om det og søg lidt videre udfra det, der findes mange mere avancerede og bedre algoritmer, men søg og du kommer et godt stykke vil jeg tro :)
Avatar billede oneeighty Nybegynder
24. november 2010 - 20:49 #2
Jeg sad og forsøgte at løse det ved ikke om det er noget der duer.

http://pastebin.com/MUpG0svC
Avatar billede GoofyDK Nybegynder
24. november 2010 - 21:10 #3
Jeg fik denne fejl: Sequence contains no elements

Ved dette:

spamTest.ApplyRule(s => s.Select(char.ToLower)
                                    .GroupBy(c => c)
                                    .Select(a => ((double)a.Count() / s.Length) * 100)
                                    .Max() >= 50, "50% of the string must not be the same letter");

og fejlen er præcis denne:

s.Select(char.ToLower)
                                    .GroupBy(c => c)
                                    .Select(a => ((double)a.Count() / s.Length) * 100)
                                    .Max() >= 50

Ellers super forsøg. :-)
Avatar billede GoofyDK Nybegynder
24. november 2010 - 21:13 #4
Og hvis jeg bare skriver f.eks. 1 så skriver den tilbage:
50% of the string must not be the same letter
Avatar billede GoofyDK Nybegynder
24. november 2010 - 21:17 #5
Den skriver også "Stop spamming!", selvom det rent faktisk ikke er spam.

Det gør den også, hvis den først har skrevet "Stop spamming!" - så skriver den at alt er spam derefter.
Avatar billede oneeighty Nybegynder
24. november 2010 - 21:39 #6
Hehe okay, nej jeg var godt klar over den første, har ikke rigtigt fået den testet helt til ende, det var et hurtigt forsøg. Skal se om jeg kan se på det senere
Avatar billede GoofyDK Nybegynder
24. november 2010 - 21:53 #7
Det er helt i orden, er bare glad for du gider hjælpe. Hvis det skal udvikles videre som ID også. For hver bruger har jo et ID, og det skal også gerne virke på ID.

Altså jeg har bruger ID 1 f.eks. og en anden har bruger ID 4. Og hvis bruger ID 4 så spammer programmet, så skal de andre jo ikke have den besked. Kan du følge mig? :-)
Avatar billede oneeighty Nybegynder
24. november 2010 - 23:06 #8
Jeg er ikke helt sikker på hvad du mener, men du kan evt kigge på det nu og se om du kan bruge det til noget

http://pastebin.com/BiG84LwC
Avatar billede GoofyDK Nybegynder
25. november 2010 - 09:22 #9
Det ser foreløbig super ud. En enkelt fejl, hvis man skriver f.eks. JA. og hvis man skriver det samme tre gange i træk, altså uden der er blevet skrevet andet. Kan den så også komme frem med "Stop Spamming!"?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester